Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DOMOTICZ - sprzęganie z lankontrolerem
#1
Jeśli ktoś już korzysta lub jeszcze nie korzysta a zamierza to może trochę pomogę. Przyklad skryptu, który sprawdza czy LK jest online (mam różne podsieci) a następnie pobiera dane dla czujnika DTH22 (temp i wilgotność). Oczywiscie skrypt wywolywany przez crontaba co 5 minut
Obsługę przycisków realizuję przez komendę http://login_LK:haslo_LK@192.168.2.101/outs.cgi?out4=1

Kod:
#!/bin/bash

# Settings

LK_IP="192.168.2.101"          # adres IP lankontrolera
PASSWORD="public"              # SNMP Password zazwyczaj public
DOMO_IP="192.168.0.100"        # Domoticz IP Address
DOMO_PORT="8080"               # Domoticz Port
LK_IDX="8"                     # IDX
LK_DTH22="11"                  # LK_DTH22
# HUM_IDX="10"                  # DTH22 wilgotnosc IDX


# Sprawdzamy czy LK jest online

PINGTIME=`ping -c 1 -q $LK_IP | awk -F"/" '{print $5}' | xargs`

echo $PINGTIME
if expr "$PINGTIME" '>' 0
then
# DTH22
DTH22_1=`snmpget -v 2c -O qv -c $PASSWORD $LK_IP .1.3.6.1.4.1.17095.6.1.0`
DTH22_1=`echo "scale=1; $DTH22_1 /10" | bc`
DTH22_2=`snmpget -v 2c -O qv -c $PASSWORD $LK_IP .1.3.6.1.4.1.17095.6.2.0`
DTH22_2=$(($DTH22_2 / 10))
# Send data
curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=udevice&idx=11&nvalue=0&svalue=$DTH22_1;$DTH22_2;0"


curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$LK_IDX" | grep "Status" | grep "On" > /dev/null

       if [ $? -eq 0 ] ; then
        echo "LK already ON"

       else

        echo "LK ON"
        # Send data
        curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$LK_IDX&switchcmd=On"

      fi

else
        curl -s "http://$DOMO_IP:$DOMO_PORT/json.htm?type=devices&rid=$LK_IDX" | grep "Status" | grep "Off" > /dev/null
        if [ $? -eq 0 ] ; then
                echo "LK already OFF"
                exit
        else
                echo "LK OFF"
                # Send data
                curl -s -i -H "Accept: application/json" "http://$DOMO_IP:$DOMO_PORT/json.htm?type=command&param=switchlight&idx=$LK_IDX&switchcmd=Off"
        fi
fi
<t></t>
Odpowiedz
#2
W jakim programie zapisać ten kod i z jakim rozszerzeniem aby odpalać przez linka http://login_LK:haslo_LK@192.168.2.101/outs.cgi?out4=1
Sorka ale nie jestem programistą i pytam Smile
<t></t>
Odpowiedz
#3
o tu

[Obrazek: 30Untitled.jpg]
<t></t>
Odpowiedz
#4
Witam, z lankontrolera korzystam od dawna do sterowania panelami solarnymi
ale nie mogę połączyć z Domoticzem . Nie wiem gdzie wpisać skrypt aby Domoticz odczytywał temperatury i napięcia z lankontrolera
Nie mogę też sterować przekaznikami
Za pomoc dzieki. pozd.
<t></t>
Odpowiedz
#5
Witam,
Bardzo proszę o pomoc w sprzęgnięciu Lankontrolera z Domoticz. Próbowałem coś sklecić z opisu levykrak lecz nie działa.
Z góry Dzięki za pomoc
<t></t>
Odpowiedz
#6
Witam wszystkich, Proszę o pomoc w sprzęgnięciu Lankontrolera z systemem Domoticz. Stosowałem się do instrukcji levykrak lecz mi nie poszło. Z góry dziękuję za pomoc.
<t></t>
Odpowiedz
#7
Witam - może ktoś opisać trochę wiecej o integracji lankontrolera z Domoticz
<t></t>
Odpowiedz
#8
kolejny przyklad ktory podeslalem przez PW. Sprzegniecie skryptow Dodomoticz LUA z lankontrolerem. Przyklad:

plik kotlownia.lua w katalogu /home/pi/domoticz/scripts/lua_parsers

local DHT_h = uri['4'];
local DHT_t = uri['3'];
local wyj_pomp = uri['2'];
local temp_zewn = uri['1'];
local bojler = uri['5'];
local moc_count = uri['6'];
moc_count = moc_count*1000
local moc = uri['7'];
moc=moc*10000
local went = uri['8'];
local bojler_piec = uri['9'];
local pompa_ciepla = uri['10'];

DHT_h = tonumber(DHT_h)
if DHT_h 60 then
hum_stat=3
else
hum_stat=1
end

--print("czekeralt")
domoticz_updateDevice(11,0,DHT_t..";"..DHT_h..";"..hum_stat)
domoticz_updateDevice(22,0,wyj_pomp)
domoticz_updateDevice(23,0,temp_zewn)
domoticz_updateDevice(24,0,bojler)
domoticz_updateDevice(12,0,moc..";"..moc_count)

if went=="0" then
domoticz_updateDevice(25,1,0)
else
domoticz_updateDevice(25,0,0)
end

if bojler_piec=="0" then
domoticz_updateDevice(20,0,0)
else
domoticz_updateDevice(20,1,0)
end

if pompa_ciepla=="0" then
domoticz_updateDevice(26,1,0)
else
domoticz_updateDevice(26,0,0)
end




##########################

i w lankontrolerze w network config mam wpisane w http client settings odswiezanie co 90 sekund
GET /json.htm?type=command&param=udevices&script=kotlownia.lua&4=#25&3=#24&2=#20&1=#18&5=#21&6=#32&7=#33&8=#9"&9=#8"&10=#5
<t></t>
Odpowiedz
#9
witam mam Domoticz V3.5979 zainstalowany na PC z Win10
1. co wybrać w typ urządzenia aby podpiąć LK do Domoticz'a
2. czy coś trzeba jeszcze ustawić w HTTP client settings w LK ?
mam 2sztuki LK HW:2.0 SW:3.13

obecnie wykresy zbieram na The Dude v4.0 tez zainstalowany na PC z Win10
<t></t>
Odpowiedz
#10
Dzięki za przykład, działa nieźle, jednakże nigdzie nie mogę znaleść informacji jak tak tak wywołany skrypt może uzyskać dostęp do globalnych tabel domoticza - wszystkie są puste np. otherdevices, otherdevices_lastupdate and otherdevices_svalues.
Może coś trzbeba dopisać do skryptu żeby tabele były dostępne ?
<t></t>
Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości