Domoticz - integracja

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
isom
Posty: 48
Rejestracja: sob paź 27, 2018 6:09 am

Nie bardzo rozumiem Twój problem , przecież jak masz zdalny dostęp , to wystarczy pobrać na telefon apke domoticz , wpisać dane do logowania i masz wszystko w jednym . Nie trzeba się za każdym razem logować do dataplicity.
A sceny czy grupy w domoticz tworzy się błyskawicznie .
s_pol
Posty: 33
Rejestracja: pt mar 08, 2019 9:13 pm

dar3cz3k_ pisze: ndz sty 13, 2019 2:38 pm Ja zrobiłęm to w następujący sposób
W Sprzęt tworzysz nowe urządzenie

Type HTTP/HTTPS poller
Method: GET
Content Type: aplication/json
URL: <wygenerowany link z serwera SUPLA>
Commands: <dowolna_nazwa.lua>
Rafraichr:60

następnie tworzysz virtualny sensor
Type: temperature

po utworzeniu interesuje nas parametr idx:

następnie utworzyłem skrypl dowolna_nazwa.lua w Domoticz\scripts\lua_parsers
gdzie local id = idx - u mnie to był numer 64

local id = 64
local s = domoticz_applyJsonPath(s,'.temperature')

domoticz_updateDevice(id,'',s)
@dar3cz3k czy mógłbyś potwierdzić działanie twojego skryptu, bo robię u siebie tak jak opisujesz ale za żadne skarby domoticz nie pobiera mi odczytów z mojego sonoff'a. W logach widzę stałą temperaturę 0,0 C.

edit: w logach cały czas mam taki błąd: Error: CLuaHandler (applyJsonPath from LUA) : Incorrect parameters type


edit2: już doszedłem, brakowało
-- Retrieve the request content
s = request['content'];
andras
Posty: 463
Rejestracja: pt gru 30, 2016 5:51 pm

Możesz podać dokładną zawartość skryptu ?
dar3cz3k_
Posty: 103
Rejestracja: śr mar 07, 2018 10:20 pm
Lokalizacja: Brudzowice

andras pisze: ndz mar 17, 2019 10:25 am Możesz podać dokładną zawartość skryptu ?
to całość skryptu:


local id = 64
local s = domoticz_applyJsonPath(s,'.temperature')

domoticz_updateDevice(id,'',s)



widzę, że @wojtas567 znalazł zdecydowanei lepszy sposób

viewtopic.php?p=37417#p37417
shirou93
Posty: 3
Rejestracja: ndz mar 31, 2019 11:15 am

arek156 pisze: wt lut 26, 2019 9:26 pm Hej
Dzięki za info, chyba coś źle rozumiem z linkiem bezpośrednim...
Link bezpośredni mam wygenerowany z supla.fracz.com ale wygląda zupełnie inaczej niż ten podeslany przez Ciebie.
Skąd w takim razie wygenerować bezpośredni link do supli zainstalowanej w sonoff?

AKTUALIZACJA
Jednak wszystko działa, wprowadzałem nie ten link :)

Mam jeszcze pytanie, czy jest możliwa jakas synchronizacja statusów, tzn jak włącze urządzenie z aplikacji supla to domoticz tego nie widzi, natomiast jak włączę w domoticzu to oczywiście stan w supli się zmienia.
Hej,
rozpracowałem aktualizację statusów w domoticzu. Tworzymy skrypt .sh i instalujemy apkę "jq"

Kod: Zaznacz cały

#!/bin/bash

content=$(curl -s 'https://LINKSUPLADOODCZYTU/read')

STATUS=$(jq '.on' <<< "${content}" )

if [[ $STATUS == *"true"* ]]; then

curl -s -i -H "Accept: application/json" "http://IPSERWERDOMTICZ/json.htm?type=command&c=getauth&param=udevice&IDX=11&nvalue=1;"

else

curl -s -i -H "Accept: application/json" "http://IPSERWERDOMOTICZ/json.htm?type=command&c=getauth&param=udevice&IDX=11&nvalue=0;"

fi
Podajesz swoje linki i IDX przełączników a potem wrzucasz do crona tak by wywoływał się co minutę.
Awatar użytkownika
wojtas567
Posty: 2209
Rejestracja: ndz kwie 03, 2016 7:16 pm
Lokalizacja: Olsztyn

Napisz jeszcze gdzie ten skrypt trzeba wysłać, co to za aplikacja i po co?
Pozdrawiam
Wojtek
shirou93
Posty: 3
Rejestracja: ndz mar 31, 2019 11:15 am

wojtas567 pisze: ndz mar 31, 2019 3:01 pm Napisz jeszcze gdzie ten skrypt trzeba wysłać, co to za aplikacja i po co?
jq wyciąga to co chcemy z jsona.

Skrypt sprawdza status gniazdka z linku bezpośredniego, a następnie wysyła go do wirtualnego przełącznika w domoticzu. Jeśli wyłączymy przełącznik ręcznie lub przez google home to zaktualizuje się w domoticzu.

Trzeba go ustawić w crontabie, żeby wykonywał się co określony czas i uaktualniał status przełącznika.
arek156
Posty: 6
Rejestracja: śr gru 13, 2017 8:51 pm

@shirou93 czy mógłbyś trochę łopatologicznie opisać gdzie wrzucić ten skrypt i co za aplikację zainstalować (jq)?

Bedę wdzięczy za pomoc ....
shirou93
Posty: 3
Rejestracja: ndz mar 31, 2019 11:15 am

Nowy skrypt, który sprawdza status w domoticzu i dopiero zmienia stan wirtualnego przełącznika (Poprzedni cały czas odkładał się w logach i włączał co jakiś czas już włączony przełącznik)

Kod: Zaznacz cały

#!/bin/bash

LINKSUPLA="link"
DOMOTICZIDX="idx"
IPDOMOTICZ="ip:port"

content=$(curl -s 'http://'$IPDOMOTICZ'/json.htm?type=devices&rid='$DOMOTICZIDX'')

STATUS_DOMOTICZ=$(grep Status  <<< "${content}" )

content=$(curl -s $LINKSUPLA)

STATUS_SUPLA=$(jq '.on' <<< "${content}" )

if [[ $STATUS_DOMOTICZ == *'"Status" : "Off",'* ]] && [[ $STATUS_SUPLA == *'false'* ]]; then
sleep 1;
elif [[ $STATUS_DOMOTICZ == *'"Status" : "On",'* ]] && [[ $STATUS_SUPLA == *'true'* ]]; then
sleep 1;
elif [[ $STATUS_DOMOTICZ == *'"Status" : "Off",'* ]] && [[ $STATUS_SUPLA == *'true'* ]]; then
curl -s -i -H "Accept: application/json" "http://"$IPDOMOTICZ"/json.htm?type=command&c=getauth&param=udevice&idx="$DOMOTICZIDX"&nvalue=1";
elif [[ $STATUS_DOMOTICZ == *'"Status" : "On",'* ]] && [[ $STATUS_SUPLA == *'false'* ]]; then
curl -s -i -H "Accept: application/json" "http://"$IPDOMOTICZ"/json.htm?type=command&c=getauth&param=udevice&idx="$DOMOTICZIDX"&nvalue=0";
else
sleep 1;
fi


  • Tworzymy w domoticzu wirtualny przełącznik i w urządzeniach sprawdzamy jego IDX.
  • Zastępujemy w skrypcie pole "IDX. Tworzymy link bezpośredni w supli na urządzeniu i dajemy mu możliwość odczytu.
  • Kopiujemy link w "LINK BEZPOSREDNI SUPLA DO ODCZYTU" w skrypcie.
  • Wpisujemy ip domoticza wraz z portem.
  • Skrypt wrzucamy gdzieś w katalogu użytkownika (LINUX) i wpisujemy w terminalu "crontab -e" na dole pliku wpisujemy np "*/5 * * * * /sciezka/do/pliku/skrypt.sh" (10 oznacz, że będzie wykonywał się co 5 minut).
To wszystko. skrypt sprawdza status przełącznika w domoticz i porównuje go ze statusem w supli. Jak w domoticzu jest inny to zmienia go na taki jaki jest w supli.

PS. po utworzeniu skryptu trzeba mu nadać uprawnienia w terminalu np."sudo chmod +x sciezka do skyptu.sh"
karok1
Posty: 3
Rejestracja: pn lis 04, 2019 7:03 pm

Czy da się dostosować ten skrypt do odczytu statusu z rolet
ODPOWIEDZ

Wróć do „Pomysły i koncepcje”