Widgety za pomocą API

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Będąc zainspirowany jednym z fimlików który tu widziałem na forum i apilkacją https://play.google.com/store/apps/deta ... uestwidget napisałem dwa szybkie skrypty które pozwalają za pomocą nowego API w Supla 2.0 na zmianę stanu wybranego kanału lub odyczytanie temperatury. Widgety "reagują na dotyk", tj na dotknięcie zmienia się stan z ON na OFF i vice versa. Temperatura również odświeża się "na dotknięcie" ;-)

Aby nie każdy mógł wykonać skrypt, dodałem możliwość konfiguracji HTTP Basic Auth. Not perfect, ale na dobry początek mnie cieszy ;)

Skrypty do instalacji u siebie z małą instrukcją: https://github.com/fracz/supla-scripts
Załączniki
screenshot_20170420-180258.png
screenshot_20170420-180258.png (330.74 KiB) Przejrzano 6893 razy
andras
Posty: 463
Rejestracja: pt gru 30, 2016 5:51 pm

Witam

Czy możesz mi to bardziej objaśnić , nie mogę sobie z tym poradzić .
Mam swój server na malince , czy katalog supla-scripts ma być w głównym katalogu ?
czy /home/pi ? . Oraz który to channel ? czy to jest lokalizacja ?
oraz czy config dobry :


define('SUPLA_SERVER', 'svr2.supla.org');
define('SUPLA_CLIENT_ID', '6_3o6yj6utmjac00o8s0wkgwc4kokw4k0og0oogokkxxxxxxxxxx');
define('SUPLA_SECRET', '5oa82j85et4w008s8kkwskocss4sg48w0ks0kwgkwokxxxxxxxxx');
define('SUPLA_USERNAME', 'api_6');
define('SUPLA_PASSWORD', '6l3GkdVFB37cjr64e4XXXXXXXXX');

define('HTTP_BASIC_USER', '');
define('HTTP_BASIC_PASSWORD', '');

pozdr
Awatar użytkownika
michael
Posty: 1299
Rejestracja: śr lis 09, 2016 8:00 am
Lokalizacja: Wojkowice

andras pisze: śr maja 10, 2017 8:50 am Witam

Czy możesz mi to bardziej objaśnić , nie mogę sobie z tym poradzić .
Mam swój server na malince , czy katalog supla-scripts ma być w głównym katalogu ?
czy /home/pi ? . Oraz który to channel ? czy to jest lokalizacja ?
oraz czy config dobry :


define('SUPLA_SERVER', 'svr2.supla.org');
define('SUPLA_CLIENT_ID', '6_3o6yj6utmjac00o8s0wkgwc4kokw4k0og0oogokkxxxxxxxxxx');
define('SUPLA_SECRET', '5oa82j85et4w008s8kkwskocss4sg48w0ks0kwgkwokxxxxxxxxx');
define('SUPLA_USERNAME', 'api_6');
define('SUPLA_PASSWORD', '6l3GkdVFB37cjr64e4XXXXXXXXX');

define('HTTP_BASIC_USER', '');
define('HTTP_BASIC_PASSWORD', '');

pozdr
Config wydaje się OK, tylko jeżeli masz swój serwer to adres serwera powinien być Twoim adresem, a nie serwera publicznego.
Katalog główny to ten z którego masz dostęp do www z poziomu przeglądarki. U mnie to
/var/www/html/web/
Jeżeli zrobiłeś wszystko zgodnie z instrukcją to powinno działać.

Mam za to inny problem - skonfigurowałem widget na telefonie do odczytu temperatury i po naciśnięciu go otrzymuję komunikat:

Kod: Zaznacz cały

java.security.cert.certpathvalidatorexception: trust anchor for certification path not found
Co mogę zrobić?
:mrgreen: :mrgreen: :mrgreen:
Awatar użytkownika
pzygmunt
Posty: 18282
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Twoje Raspberry ma nieważny certyfikat. Możesz odwołać się po HTTP lub gdzieś w konfiguracji dodać ignorowanie sprawdzania certyfikatów.
andras
Posty: 463
Rejestracja: pt gru 30, 2016 5:51 pm

Ustawienia RESRful Api biorę z svr2.supla.org to chyba define('SUPLA_SERVER', 'svr2.supla.org'); jest ok
na malince mam wgrany katalog supla-scripts /home/pi/supla-scripts/
i jak wpisuję https://192.168.1.186/supla-scripts/temperature/28424 to dostaję :
Oops! An Error Occurred
The server returned a "404 Not Found".
Awatar użytkownika
pzygmunt
Posty: 18282
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

prawdopodobniej błędny id kanału
andras
Posty: 463
Rejestracja: pt gru 30, 2016 5:51 pm

id kanału biorę z : https://svr2.supla.org/iodev/1313/28424/edit

na stronie wyswietla temperaturę
Awatar użytkownika
pzygmunt
Posty: 18282
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontakt:

Najwidoczniej katalog domowy w konfiguracji apache dla tego url-a jest w innym miejscu
andras
Posty: 463
Rejestracja: pt gru 30, 2016 5:51 pm

Przeniosłem do /var/www/html/web/supla-scripts/ i myślę że katalog dobry
bo jak wpisuję https://192.168.1.186/supla-scripts/
to mam

Index of /supla-scripts
[ICO] Name Last modified Size Description
[PARENTDIR] Parent Directory -
[ ] ConfiguredSuplaApiClient.php 2017-04-24 11:33 494
[ ] README.md 2017-04-24 11:33 3.3K
[ ] composer.json 2017-04-24 11:33 192
[ ] composer.lock 2017-04-24 11:33 1.5K
[ ] config.php 2017-05-10 21:24 387
[ ] http-basic-auth.php 2017-04-24 11:33 342
[DIR] scene/ 2017-05-10 16:49 -
[DIR] state-notifier/ 2017-05-10 16:49 -
[DIR] temperature-stats/ 2017-05-10 16:49 -
[DIR] temperature/ 2017-05-10 16:49 -
[DIR] thermostat/ 2017-05-10 16:59 -
[DIR] toggle/ 2017-05-10 16:49 -
Apache/2.4.25 (Raspbian) Server at 192.168.1.186 Port 443

a jak wpisuję https://192.168.1.186/supla-scripts/temperature/28429

to strona teraz jest pusta

a w chrome dostaję
Ta strona nie działa

Serwer 192.168.1.186 nie może teraz obsłużyć tego żądania.
HTTP ERROR 500
Awatar użytkownika
michael
Posty: 1299
Rejestracja: śr lis 09, 2016 8:00 am
Lokalizacja: Wojkowice

pzygmunt pisze: śr maja 10, 2017 1:00 pm Twoje Raspberry ma nieważny certyfikat. Możesz odwołać się po HTTP lub gdzieś w konfiguracji dodać ignorowanie sprawdzania certyfikatów.
Pokusiłem się o instalację certyfikatu SSL na swojej malince i widgety działają tak jak miały działać :)
Dzięki za wskazówki!
Załączniki
widgety2.png
widgety2.png (225.97 KiB) Przejrzano 6640 razy
:mrgreen: :mrgreen: :mrgreen:
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”