Widgety za pomocą API

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
fracz
Posts: 1570
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Thu Apr 20, 2017 4:12 pm

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
Attachments
screenshot_20170420-180258.png
screenshot_20170420-180258.png (330.74 KiB) Viewed 3776 times
andras
Posts: 239
Joined: Fri Dec 30, 2016 5:51 pm

Wed May 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
User avatar
michael
Posts: 957
Joined: Wed Nov 09, 2016 8:00 am
Location: Wojkowice

Wed May 10, 2017 12:18 pm

andras wrote:
Wed May 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:

Code: Select all

java.security.cert.certpathvalidatorexception: trust anchor for certification path not found
Co mogę zrobić?
Kabel ucięty na miarę zawsze jest za krótki...
User avatar
pzygmunt
Posts: 6689
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Wed May 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.
andras
Posts: 239
Joined: Fri Dec 30, 2016 5:51 pm

Wed May 10, 2017 1:44 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".
User avatar
pzygmunt
Posts: 6689
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Wed May 10, 2017 1:48 pm

prawdopodobniej błędny id kanału
andras
Posts: 239
Joined: Fri Dec 30, 2016 5:51 pm

Wed May 10, 2017 1:51 pm

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

na stronie wyswietla temperaturę
User avatar
pzygmunt
Posts: 6689
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Wed May 10, 2017 2:05 pm

Najwidoczniej katalog domowy w konfiguracji apache dla tego url-a jest w innym miejscu
andras
Posts: 239
Joined: Fri Dec 30, 2016 5:51 pm

Wed May 10, 2017 3:19 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
User avatar
michael
Posts: 957
Joined: Wed Nov 09, 2016 8:00 am
Location: Wojkowice

Thu May 11, 2017 10:32 am

pzygmunt wrote:
Wed May 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!
Attachments
widgety2.png
widgety2.png (225.97 KiB) Viewed 3523 times
Kabel ucięty na miarę zawsze jest za krótki...
Post Reply