Odczyt wartości z kanału innego urządzenia

KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Dzień dobry,
Mam "swoje" kanały na wielu urządzeniach zarejestrowane w SuplaCloud i potrzebuje z jednego urządzenia odczytać wartość kanału (temperatura, on/off itd) z innego urządzenia w ramach "moich" kanałów. Czy jest jakaś inna możliwość niż directlink? Jeśli nie ma to czy supla-device daje jakieś wsparcie w odczycie poprzez directlink?

Na razie zrobiłem to poprzez direclink i własną obsługę HTTPS GET i parsowanie JSONa - ale jakieś to takie nieeleganckie.

Ma ktoś może wiedze/pomysł jak to zrobić inaczej?
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

KaDet wrote: Thu Feb 22, 2024 11:13 am Dzień dobry,
Mam "swoje" kanały na wielu urządzeniach zarejestrowane w SuplaCloud i potrzebuje z jednego urządzenia odczytać wartość kanału (temperatura, on/off itd) z innego urządzenia w ramach "moich" kanałów. Czy jest jakaś inna możliwość niż directlink? Jeśli nie ma to czy supla-device daje jakieś wsparcie w odczycie poprzez directlink?

Na razie zrobiłem to poprzez direclink i własną obsługę HTTPS GET i parsowanie JSONa - ale jakieś to takie nieeleganckie.

Ma ktoś może wiedze/pomysł jak to zrobić inaczej?
Aktualnie direct link to jedyna opcja. W s-d nie ma wbudowanej obsługi direct linków. Gdzieś na forum były przykładowe programy czytające direct linki. Możesz też sobie podpatrzeć jak to w GuiGeneric jest zrobione.
Najlepsze suple dla Twojego domu :mrgreen:
KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

Dzięki,
@klew - liczyłem na Twoją odpowiedź, ale miałem nadzieje na inną :)

Pozdrawiam serdecznie i spojrzę jak to w GG jest zrobione.
User avatar
Lector
Posts: 2471
Joined: Fri Nov 17, 2017 2:26 pm
Location: Poznań
Has thanked: 13 times
Been thanked: 25 times

Post

Pytanie co chcesz osiągnąć.
Ja mam jeden moduł z OLED do zdalnego prezentowania termometrów i stany przekaźników.
Termometry oparte na linkach, a stan kanału przekaźnika wirtualnego ustawiam za pomocą reakcji z głównego moduły.

Na OLED widać jakie temperatury są i stany przekaźników.
Last edited by Lector on Thu Feb 22, 2024 7:29 pm, edited 1 time in total.
Niespełniony automatyk. :mrgreen:
https://3d-lamp.photos/
https://pool.lector.top/
KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

"Termometry oparte na liniach" - jak rozumiem piszesz o directlinkach? Tak też to robię teraz, ale...
... jak pisałem to nieeleganckie (dla mnie) rozwiązanie, gdy w kodzie odwołuje się do linków, które musze podawać - bo się mogą przecież zmienić (np. przy wymianie urządzenia) w parametrach przy konfiguracji. Nieeleganckie dla mnie są własnoręcznie pisane GETy i korzystanie z HTTPClient i WiFiClientSecure jakby "poza" Supla (zresztą mam jakieś wrażenie, że nieco "interferują między sobą). Dla mnie najmniejszą pożądaną zmianą byłaby klasa komunikacji poprzez linki, gdzie w wyniku odwołania (ale to już jakimiś Supłowymi połączeniami) otrzymywałbym zdeserializowany wynik odczytu kanału a jeszcze lepiej gdyby nie trzeba było podawać linku tylko jakiś inny identyfikator kanału (nazwa), którą dałoby się definiować w Supla-Cloud.

Radzę sobie, ale ponieważ co nieco robię z oprogramowaniem to łkam nad takim podejściem

Pozdrawiam

PS - mam analogiczny ekranik do wyświetlania temperatur, poziomu wody w oczku i stanu powietrza - też na linkach - co nie oznacza, ze mi się takie podejście mega podoba - ale działa...
KaDet
Posts: 52
Joined: Fri Nov 27, 2020 5:06 pm
Location: Dąbrowa Górnicza

Post

klew wrote: Thu Feb 22, 2024 11:34 am
KaDet wrote: Thu Feb 22, 2024 11:13 am Dzień dobry,
Mam "swoje" kanały na wielu urządzeniach zarejestrowane w SuplaCloud i potrzebuje z jednego urządzenia odczytać wartość kanału (temperatura, on/off itd) z innego urządzenia w ramach "moich" kanałów. Czy jest jakaś inna możliwość niż directlink? Jeśli nie ma to czy supla-device daje jakieś wsparcie w odczycie poprzez directlink?

Na razie zrobiłem to poprzez direclink i własną obsługę HTTPS GET i parsowanie JSONa - ale jakieś to takie nieeleganckie.

Ma ktoś może wiedze/pomysł jak to zrobić inaczej?
Aktualnie direct link to jedyna opcja. W s-d nie ma wbudowanej obsługi direct linków. Gdzieś na forum były przykładowe programy czytające direct linki. Możesz też sobie podpatrzeć jak to w GuiGeneric jest zrobione.
Czy jest gdzieś kod GuiGeneric jaki generuje się na "device". Bo tam chciałbym to podejrzeć (wywoływanie directlink) To co teraz mogę zrobić (chyba, że jestem w błędzie) to wygenerować sobie bin na ESP i popatrzeć w panelu konfiguracyjnym jak to jest zrobione.
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

KaDet wrote: Thu Feb 22, 2024 2:01 pm Czy jest gdzieś kod GuiGeneric jaki generuje się na "device". Bo tam chciałbym to podejrzeć (wywoływanie directlink) To co teraz mogę zrobić (chyba, że jestem w błędzie) to wygenerować sobie bin na ESP i popatrzeć w panelu konfiguracyjnym jak to jest zrobione.
https://github.com/krycha88/GUI-Generic/
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

Nie rozumiem złożoności tematu, przecież każde urządzenie komunikuje się z serwerem, a serwer zna stan każdego z kanałów. Co za problem napisać coś co będzie pobierało z serwera do device-a stan kanału o podanym numerze. Tylko żeby serwer to obsługiwał.
@klew wiem, że to jest multum waszych klas do obsłużenia, ale może zacznijcie od KLOP i KPOP…
Last edited by SOYER on Thu Feb 22, 2024 2:46 pm, edited 1 time in total.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
SOYER
Posts: 1623
Joined: Wed Aug 10, 2022 12:29 pm
Location: Kryry
Been thanked: 2 times

Post

.
https://youtube.com/@tomaszhamer8134?si=_J1cT_QWsXxgt1Fm
https://kryry01.aqi.eco/pl
https://app.weathercloud.net/d4311785603
https://github.com/Soyer79
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

SOYER wrote: Thu Feb 22, 2024 2:42 pm Nie rozumiem złożoności tematu, przecież każde urządzenie komunikuje się z serwerem, a serwer zna stan każdego z kanałów. Co za problem napisać coś co będzie pobierało z serwera do device-a stan kanału o podanym numerze. Tylko żeby serwer to obsługiwał.
@klew wiem, że to jest multum waszych klas do obsłużenia, ale może zacznijcie od KLOP i KPOP…
Jak tylko zrealizujemy wszystkie rzeczy, które mamy na liście, to się tym zajmiemy :p
Najlepsze suple dla Twojego domu :mrgreen:

Return to “Ogólna dyskusja”