UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
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 ??
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 😉
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¶m=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.
@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ć
Super dziękuję.
sudo apt-get -y install jq
musiałem tylko usunąć -y i poszło .
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ę.
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
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 ?
@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
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¶m=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¶m=udevice&idx=$IDX&nvalue=0&svalue=$WYNIK" > /dev/null 2>&1
lub
wget -O - "$DOMO/json.htm?username=USER=&password=PASSWD=&type=command¶m=udevice&idx=$IDX&nvalue=0&svalue=$WYNIK" > /dev/null 2>&1
@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ć
@isom
Witam ponownie
Działało dwa lata i przestało, nie wiesz czy coś się zmieniło, nic nie ruszałem w tym temacie.
Może linux puścił jakąś łatkę i podczas aktualizacji systemu, aktualizuję tylko security chyba że google coś zblokowało.
Ostatni poprawny odczyt miałem 30 sierpnia tego roku.
@wojtek_gtx pojęcia nie mam , nie korzystam z tego . Może klucz wygasł , sprawdz sam url co zwraca z twoim kluczem
A jednak się udało, problem zrobiło mi google.maps bo zmienili nazwę ulicy w swoich bazach, wcześniej było Skorupki a teraz jest Księdza Ignacego Skorupki 😉 Taki mały psikus
Mam pytanie, może się orientujesz co zrobić bo po aktualizacji Domoticz-a do wersji 2023 przestał mi działać skrypt.
Najprawdopodobniej stało się to przez uwierzytelnianie bo zmieniło się ze starej opcji na okienko z logowaniem i jest tylko to bez mozliwości wyboru.
@wojtek_gtx masz w sieciach zaufanych wpisany zakres IP twojego routera ( sieci lokalnej ) np 192.168.1.* ?
Już tak ale to też nie pomogło, mam też problem z dashticzem bo też się nie autoryzuje.
Coś mi się przypomina że jakiś skrypt pomogłeś mi zdziałać ale musiało być zrobione to stare autentykowanie .
To prawda że na HA się przesiadłeś ?
@wojtek_gtx tak zrezygnowałem z Domoticza, ale wynika to ze zbyt wolnego rozwoju tego projektu. Nie mam nic poza tym do zarzucenia. Wracając do Twoich problemów, to na 99% wynikają ze zmian w obsłudze użytkowników i autoryzacji w samym Domoticz.
Nie mam jak sprawdzić, więc nie pomogę.