Javascript - sterowanie za pomocą linków bezpośrednich

Pablo1
Posts: 9
Joined: Wed Nov 27, 2019 12:54 pm

Post

Witam wszystkich Suplowiczów.
To mój pierwszy wpis.
Chciałby zrobić stronę internetową na której za pomocą pomocą linków bezpośrednich będzie można sterować przełącznikami i monitorować temperatury.
Jeśli chodzi o sterowanie to nie ma problemu znalazłem dużo na forum, ale jeśli chodzi o pobranie wartości za pomocą json nie mogę nic znaleźć, czytam na ten temat od paru godzin i nie udaje mi się tego zrobić.
Czy może ktoś dać jakiś przykład.
Dodam, że chciałbym, aby strona działała po stronie użytkownika, czyli w JavaSrypcie, a nie w PHP-ie.
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Code: Select all

curl -s -H "Content-Type: application/json" -H "Accept: application/json" -X PATCH -d '{"code":"32YMz34YAzTNEiVM","action":"read"}' https://svr1.supla.org/direct/788
SUPLA.... Nareszcie w domu.
Pablo1
Posts: 9
Joined: Wed Nov 27, 2019 12:54 pm

Post

Dzięki za odpowiedź, ale nadal nie wiem jak to ugryźć.
curl działa w terminalu, w PHP, ale w JS nie wiem jak tego użyć.
corso
Posts: 31
Joined: Fri Nov 17, 2017 7:38 am
Location: Ruda Śląska

Post

Nie używam JS, niemniej musisz poszukać jak się z jego poziomu wywołuje web api i parsuje JSONa.
Tutaj pierwszy z brzegu link do stakoverflow
https://stackoverflow.com/questions/369 ... javascript
User avatar
akszyn
Posts: 203
Joined: Wed May 22, 2019 2:40 pm
Location: Szczecin

Post

podpinam sie do tematu gdyż na stronie z linkiem bezposrednim po kliknięci znaku zapytania pojawia się info ze można użyć tego gdzie indziej
dodaj odpowiedni nagłówek żądania by otrzymać odpowiedź łatwiejszą w przetworzeniu. Accept: application/json
ale to mi nic nie mówi do dalej z tym począć edit:(curl nie działa na moim hostingu)
pzygmunt wrote: Wed Dec 18, 2019 1:30 pm

Code: Select all

curl -s -H "Content-Type: application/json" -H "Accept: application/json" -X PATCH -d '{"code":"32YMz34YAzTNEiVM","action":"read"}' https://svr1.supla.org/direct/788
wiec fajnie jakby był gdzie odnośnik co można z tym dalej począć
Edit: sory jeśli pod złym postem poruszam ta tematykę więc jakby co proszę o wskazanie lub przeniesienie moich wpisów do odpowiedniego działu
Last edited by akszyn on Thu Jan 16, 2020 9:55 pm, edited 3 times in total.
Supla na pokładzie wemosa D1 mini z relay shield (gate Zybiego)z DS18B20 + sonoff basic (domyślny soft) + broadlink RM mini 3 + Philips hue white z bridge v1 + LoraTap (RF 433) z kinetycznym przełącznikiem + ai-speaker Dev1 i Dev3
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Ale co chcesz począć?
User avatar
akszyn
Posts: 203
Joined: Wed May 22, 2019 2:40 pm
Location: Szczecin

Post

Konkretnie to zastanawiam się czy dało by się przy pomocy Jason dodać na stronę bardziej personalizowany widok temperatury z linku bezpośrednio choć nie wiem czy się da bo u was w opisie jest że json jest jakby się chciało użyć innego oprogramowania bo na razie mam w iframe dodany owy link i chciałbym abym mógł bardziej dostosować aby bardziej pasował do klimatu strony

Edited : przed chwilą znalazłem wpis który mnie zainteresował na forum viewtopic.php?f=20&t=4158&start=70 oraz zainspirował mnie aby zrobić coś podobnego u siebie na stronce www (ale bez zabawy w domoticze itp.) jak użytkownik djack2017 choć może nie koniecznie w grafanie / kibanie / zabiksie czy innym tego typu narzędzi lub frameworków gdyż na początku bym zaczął od czegoś prostszego do tworzenia dashboard swojego Smart home i nie tylko
Supla na pokładzie wemosa D1 mini z relay shield (gate Zybiego)z DS18B20 + sonoff basic (domyślny soft) + broadlink RM mini 3 + Philips hue white z bridge v1 + LoraTap (RF 433) z kinetycznym przełącznikiem + ai-speaker Dev1 i Dev3
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Nadal nie wiem co i w jakiej technologii chcesz zrobić i z czym jest problem. Jak chcesz tylko zmienić wygląd strony odpowiedzi linku bezpośredniego to zainstaluj sobie w przeglądarce Stylus albo Tampermonkey i dostosuj jak chcesz.

Linków bezpośrednich AJAXem nie da się wywołać ze względu na CORS.

Żeby to działało, po naszej stronie można by dodać jeszcze jeden format odpowiedzi JSONP (obok instniejących HTML i JSON), co pozwala obejść powyższe ograniczenie, ale na etapie implementacji nie widziałem sensu jego wprowadzania (taki trochę old school).

Stąd, jeśli chcesz koniecznie stworzyć sobie swój panel w oparciu o linki bezpośrednie to konieczne jest dodanie na swoim serwerze skryptu w PHP/Python/whatever, który pobierze dane z linku bezpośredniego i przedstawi je w Twojej domenie tak, że CORS nie będzie problemem.

Ale wtedy to w ogóle nie widzę sensu opierania takiej funkcjonalności na linkach, bo możesz spokojnie skorzystać z API.

Co sprowadza mnie do punktu wyjścia - nadal nie rozumiem co chcesz zrobić i dlaczego za pomocą linków.
User avatar
akszyn
Posts: 203
Joined: Wed May 22, 2019 2:40 pm
Location: Szczecin

Post

Mam zainstalowany Tampermonkey (do innych celów) ale on by wprowadził mi zmiany tylko lokalnie a nie na serwerze raczej a chciałbym na dowolnym urządzeniu mieć taki sam wygląd.

Co i w jakim sensie jest old school a nie posiadam własnego serwera Supli jeśli o to chodzi ,a poza tym nie wiem jak się za to (skrypt) bym miał zababrać "tak, że CORS nie będzie problemem".

Skoro wspomniałeś o API to jak mógłbym wykorzystać aby zrobić swój własny wygląd prezentowania wyników z Supli i nie tylko?

W skrócie chciałbym zrobić np.: gradient lub inne wymyślne tło i opcjonalnie własne ikony prezentujące wyniki aby były zgodne z motywem na mojej stronie www, nie musi to być za pomocą linków bezpośrednich.

Na forum przeglądając o owych linkach natrafiłem na fajną prezentację w Grafenie wiec chciałbym zrobić coś podobnego u siebie tylko w prostszy sposób (np.:html) i aby było możliwość personalizacji prezentowanych wyników i pomijam fakt że chce aby moja strona była rensponsywna więc mogę prosić o jakiś link do tutoriala czy coś ?
Supla na pokładzie wemosa D1 mini z relay shield (gate Zybiego)z DS18B20 + sonoff basic (domyślny soft) + broadlink RM mini 3 + Philips hue white z bridge v1 + LoraTap (RF 433) z kinetycznym przełącznikiem + ai-speaker Dev1 i Dev3
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Odgrzebuję temat, bo znalazłem śmiechowe rozwiązanie :lol:

https://github.com/Rob--W/cors-anywhere

Dzięki tej aplikacji można ominąć ograniczenia CORS... oczywiście w dobrej wierze ;)

I tak można w JS odczytać link bezpośredni:

Code: Select all

fetch("https://cors-anywhere.herokuapp.com/https://svr3.supla.org/direct/701/jzzDNZMMNNNwGg/read")
   .then(r => r.json())
   .then(json => console.log(json))
Wykonanie tak samo ;-)

Natomiast rozmawiam z @pzygmunt na temat zniesienia CORSów dla linków bezpośrednich.

Return to “Pomoc”