Mamy dzięki temu duże możliwości wykorzystania, np. możemy napisać program, który po wykryciu ruchu na czujniku pir aktywuje alarm lub po wykryciu światła na czujniku światła podnosi nam żaluzje, mamy pełną dowolność wykorzystania.
Pokażę na przykładzie programu mis napisanego w pythonie, który powoduje ruch serwa i miganie diodami.
Najpierw tworzymy sobie katalogi python i lua w katalogu domoticz/scripts, uruchamiamy program Bitvise wchodzomy do domopticz/scripts i dodajemy katalogi, w m moim przypadku takie katalogi już były.
Program mis.py wygląda tak:
#/usr/bin/python
print"Mis rusza reka"
import time
import RPi.GPIO as GPIO
#import biblotek time i GPIO
GPIO.setmode(GPIO.BCM)
#ustawienie pinow wg numeracji BCM
GPIO.setwarnings(False)
GPIO.setup(18,GPIO.OUT)
GPIO.setup(17, GPIO.OUT)
#ustawienie pinow 18 i 17 jako wyjscia
p = GPIO.PWM(18, 50)
p.start(2.5)
while (True):
GPIO.output(17, True)
p.ChangeDutyCycle(2.5) #pozycja 0 stopni serwa
time.sleep(1)
GPIO.output(17, False)
p.ChangeDutyCycle(7.5) #pozycja 90 stopni serwa
time.sleep(1)
W programie wykorzystno piny GPIO 17, 18, ustawione są jako wyjścia i w pętli wykonywane jest miganie diodą i ruch serwa o 90 stopni co sekundę.
Skrypt lua będzie uruchamiał program po włączeniu przycisku i zabijał proces pythona poleceniem pkill po wyłączeniu przycisku.
Skrypt wygląda tak:
commandArray = {}
if (devicechanged['MIS'] == 'On') then
os.execute ("sudo python /home/pi/python/mis.py")
end
if (devicechanged['MIS'] == 'Off') then
os.execute("sudo pkill -9 -f /home/pi/python/mis.py")
end
return commandArray
Programy w pythonie umieściłem sobie w /home/pi/python i skrypt uruchamia program mis poleceniem:
sudo python /home/pi/python/mis.py
Teraz tworzymy skrypt lua i zapisujemy go w /home/pi/domoticz/scripts/lua.
W linijce:
if (devicechanged['MIS'] == 'On') then
wpisujemy nazwę naszego przycisku jaki dodamy w Domoticz, ja nazwałem sobie go MIS.
Do edycji plików tekstowych i napisanych programów używam program Notepad++, możemy go sobie pobrać stąd -> https://notepad-plus-plus.org/
Skypt i program możemy sobie pobrać stąd -> Link
Jak już mamy pliki umieszczone w odpowiednich katalogach, uruchamiamy nasz panel Domoticz.
Wchodzimy w Ustawienia -> Sprzęt i tworzymy wirtualny przycisk, z listy wybieramy Dummy
Wpisujemy nazwę, ja wpisałem Wirtualny i klikamy Dodaj, zobaczymy go na liście rekordów.
Teraz klikamy Utwórz wirtualne sensory
Wybieramy przełącznik i klikamy OK
Wchodzimy w Ustawienia -> Urządzenia, szukamy nasz utworzony przycisk Wirtualny i klikamy w zieloną strzałkę
Wpisujemy nazwę, ja wpisałem MIS i klikamy Dodaj urządzenie
Teraz w menu Przełączniki mamy nasz nowo dodany przycisk, po kliknięciu uruchomi się nasz program w pythonie, a po wyłączeniu, wykonywanie program zostanie zatrzymane.
Miś uruchamiany przyciskiem wygląda tak
Budowa misia
Cześć. Fajny blog prowadzisz.
OdpowiedzUsuńCzy jest szansa wyeliminować opóźnienia w domoticz? Mam przekaźnik połączony z malina na rf433 skryptem lua uruchamiam program w pythonie wyl/wl. Czas reakcji bywa bardzo różny od 1s do 8s. Jest to zwiecha domoticza. Jak przez kondole uruchamiam programy to opóźnień nie ma. mam pi2
Cześć. Fajny blog prowadzisz.
OdpowiedzUsuńCzy jest szansa wyeliminować opóźnienia w domoticz? Mam przekaźnik połączony z malina na rf433 skryptem lua uruchamiam program w pythonie wyl/wl. Czas reakcji bywa bardzo różny od 1s do 8s. Jest to zwiecha domoticza. Jak przez kondole uruchamiam programy to opóźnień nie ma. mam pi2
Witam,
OdpowiedzUsuńpomógł byś mi napisać program w Pythonie obsługujący ModBus RTU RS485?
Idea była by ta sama, z tym, że po wciśnięciu przycisku skrypt lua ma uruchamiać program w pythonie wysyłający komendę do pewnego urzadzenia.
Nawet odpłatnie.
Proszę o kontakt
maciejgapinski.am@gmail.com