Domoticz - integracja

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
isom
Posts: 31
Joined: Sat Oct 27, 2018 6:09 am

Sat Mar 02, 2019 7:42 pm

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
Posts: 4
Joined: Fri Mar 08, 2019 9:13 pm

Sat Mar 16, 2019 6:24 pm

dar3cz3k_ wrote:
Sun Jan 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
Posts: 228
Joined: Fri Dec 30, 2016 5:51 pm

Sun Mar 17, 2019 10:25 am

Możesz podać dokładną zawartość skryptu ?
dar3cz3k_
Posts: 30
Joined: Wed Mar 07, 2018 10:20 pm
Location: Brudzowice

Sun Mar 17, 2019 10:42 am

andras wrote:
Sun 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
Posts: 3
Joined: Sun Mar 31, 2019 11:15 am

Sun Mar 31, 2019 11:23 am

arek156 wrote:
Tue Feb 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"

Code: Select all

#!/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ę.
User avatar
wojtas567
Posts: 1671
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Sun Mar 31, 2019 3:01 pm

Napisz jeszcze gdzie ten skrypt trzeba wysłać, co to za aplikacja i po co?
Pozdrawiam
Wojtek
shirou93
Posts: 3
Joined: Sun Mar 31, 2019 11:15 am

Sun Mar 31, 2019 3:53 pm

wojtas567 wrote:
Sun 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
Posts: 6
Joined: Wed Dec 13, 2017 8:51 pm

Sat Apr 13, 2019 11:39 am

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

Bedę wdzięczy za pomoc ....
shirou93
Posts: 3
Joined: Sun Mar 31, 2019 11:15 am

Sun Apr 14, 2019 11:59 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)

Code: Select all

#!/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"
Post Reply