Notifications
Clear all

Droga do pracy ? Wyznacz trase  

  RSS
ebiznes
(@ebiznes)
Nowy

Witam.

Czy jest opcja aby w Domoticzu lub Dashticz dodać blok ktory wyznacza mi najszybszą drogę do pracy  oraz czy domoticz jest wstanie obsługiwać polecenia głosowe w sensie sprawdz trase do Leszno ??

Cytuj
Dodane : 03/11/2019 8:55 am
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

Droga do pracy  jest opisana : http://cezarowy.blogspot.com/2017/06/czas-drogi-do-pracydomu-w-domoticz.html?m=1

Zrobiłem i działa, w dashticzu też mi wyświetla tyle że trzeba pamiętać o API żeby poprawnie utworzyć no i jak zrobisz częste odpytywanie to dostaniesz fakturę z google  😉

OdpowiedzCytuj
Dodane : 03/11/2019 9:31 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

To co wstawił @wojtek_gtx czyli wtyczka , rzeczywiście oblicza czas dojazdu z punktu A do B , ale robi to co wyznaczony interwał czasowy , więc aktualizuje urządzenia w domoticz nawet jak tego nie potrzebujemy . Mając wygenerowany API KEY w Google Maps można użyć prostego skryptu bash , który zaktualizuje urządzenie w domoticz tylko w określonych godzinach , lub tylko na wyraźne żądanie i może to być polecenie głosowe. Przykładowy skrypt

#!/bin/bash
KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
FROM=Wroclaw+Dworcowa+6
TO=Warszawa+Marszalkowska+12
CZAS=`curl -s "https://maps.googleapis.com/maps/api/directions/json?origin=$FROM&destination=$TO&transit_mode=driving&departure_time=now&key=$KEY" | jq '.routes[0].legs[0].duration_in_traffic.value'`
WYNIK=$(($CZAS/60)) DOMO=192.168.x.xxx:8084
IDX=xx wget -O - "$DOMO/json.htm?type=command&param=udevice&idx=$IDX&nvalue=0&svalue=$WYNIK" > /dev/null 2>&1

Jak widać wystarczy utworzyć wirtualny  Custom sensor , którego idx wpisujemy w miejsce xx i to właśnie ten czujnik będzie pokazywał aktualny czas dojazdu .

Skrypt musi mieć prawa wykonalności i można go uruchamiać przy użyciu np  Push On Button z wypełnionym polem akcji włącz.

Można też ustawić sobie plany załączenia tego przycisku i skrypt uruchomi się o wyznaczonych godzinach w harmonogramie.

OdpowiedzCytuj
Dodane : 03/11/2019 6:30 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

@isom

Kurde @isom to jest dobre, jutro wieczorem jak będzie chwilka wypróbuję.

OdpowiedzCytuj
Dodane : 03/11/2019 10:16 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@wojtek_gtx zapomniałem dodać że aby skrypt prawidłowo pobrał dane z API Google trzeba doinstalować pakiet JQ . Czyli po kolei

sudo nano dojazd.sh

wklejasz skrypt , zapisujesz , potem uprawnienia

sudo chmod +x dojazd.sh

teraz pakiet JQ

sudo apt-get -y install jq

test skryptu

./dojazd.sh

I jak ustawiłeś prawidłowe adresy FROM , TO  to powinno działać

OdpowiedzCytuj
Dodane : 03/11/2019 10:43 pm
wojtek_gtx polubień
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

Super dziękuję.

sudo apt-get -y install jq 

musiałem tylko usunąć -y i poszło .
OdpowiedzCytuj
Dodane : 03/11/2019 11:15 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

@isom

Super, chwila moment i zadziałało ... 😉

Przypisałem skrypt pod wirtualny przełącznik i zrobiłem odświeżanie z palca na Dashticzu - podoba  mi się.

OdpowiedzCytuj
Dodane : 04/11/2019 11:31 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

Kurde mam problemik, wszystko działało i nagle przestało nie wiem czy poszła jakaś aktualizacja ubuntu czy coś innego ale nawet dziś się zawziąłem i zaktualizowałem  z 16.04 do 18.04 i do Domoticza 2020.2 ale tez nic

Po wciśnięciu przycisku dostaję błąd i w Logu :

2020-06-20 22:35:28.352 Error: Error executing script command (/home/zaber/domoticz/scripts/dojazd.sh). returned: 1536

Prawa w linux na skrypcie się nie zmieniły

OdpowiedzCytuj
Dodane : 20/06/2020 10:54 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

Znalazłem przyczynę dla czego nie działa, skrypt jest na dostęp bez hasła i loginu a ja musiałem zdjąć wpis o dostępie bez logowania bo mam trzech użytkowników z różnymi rodzajami dostępów.

Jest jakiś sposób na dopisanie loginu i hasła do skryptu ?

OdpowiedzCytuj
Dodane : 23/06/2020 7:56 am
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@wojtek_gtx to nie cały skrypt wymaga autoryzacji , tylko json aktualizujący Custom sensor , popatrz na to https://www.domoticz.com/wiki/Domoticz_API/JSON_UR L's#Authorization

do skryptu dodaj

USER=xxxx

PASSWORD=xxxxxxx

i odpowiednio zmień ostatni wiersz w skrypcie

OdpowiedzCytuj
Dodane : 23/06/2020 9:42 am
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

@isom

Kurde albo coś źle robię albo nie chce zadziałać 😉
najpierw zrobiłem :

wget -O - "http://<xxxxx:yyyyyyy@>192.168.1.xx:8084/json.htm?&type=command&param=udevice&idx=$IDX&nvalue=0&svalue=$WYNIK" > /dev/null 2>&1

taki format nie działa

Później jak ty podałeś :

USER=xxxx
PASSWD=yyyy

wget -O - "$DOMO/json.htm?username=USER=&password=PASSWD=&api-call&type=command&param=udevice&idx=$IDX&nvalue=0&svalue=$WYNIK" > /dev/null 2>&1

lub

wget -O - "$DOMO/json.htm?username=USER=&password=PASSWD=&type=command&param=udevice&idx=$IDX&nvalue=0&svalue=$WYNIK" > /dev/null 2>&1
OdpowiedzCytuj
Dodane : 23/06/2020 3:19 pm
isom
 isom
(@isom)
Prezes Moderator Zasłużony dla Forum, Donator 2019, Donator 2K20

@wojtek_gtx ani jeden json nie jest poprawny . Zobacz na podstawowy skrypt i odpowiedz sobie na pytanie co zastępuje w json słowo DOMO . Jak dojdziesz do wniosku, że zastępuje pełny adres domoticza razem z portem to pomyśl co zastępuje słowo USER  i czy do json wstawiać xxxxx czy jednak może USER.

Nie ma sensu żebym podał na tacy gotowca bo przy kolejnej zmianie znów nie będziesz wiedział dlaczego przestało działać

OdpowiedzCytuj
Dodane : 23/06/2020 9:51 pm
wojtek_gtx
(@wojtek_gtx)
Brygadzista Donator 2019, Donator 2K20

@isom

HE HE zadziałało, dzięki za motywację

OdpowiedzCytuj
Dodane : 24/06/2020 9:08 am
isom polubień
Udostępnij: