Jak dodać do inteligentnego domu dowolne urządzenie sterowane pilotem? – cz.2

Dziś uzyskasz kolejne informacje dotyczące gotowego rozwiązania, którego opis rozpocząłem w poprzednim artykule (https://ztechnikazapanbrat.pl/integracja-markizy1/ ). Po uważnym przeczytaniu pierwszej części przygotowałeś uniwersalny pilot ze skopiowanymi sygnałami z oryginalnego. Potem dolutowałeś obwody do interesujących Cię funkcji realizowanych przez przyciski pilota. Na koniec, w zależności od posiadanego systemu inteligentnego domu, podpiąłeś przewody pod moduł cyfrowy taki jak Smart Implant firmy FIBARO.

W poprzednim tekście obiecałem, że podam Ci pełne rozwiązanie na przykładzie modułu Smart Implant firmy FIBARO wraz z gotowym do skopiowanie kodem LUA do oprogramowania sterowania markizy słonecznej.

Pamiętaj!

Samo rozwiązanie jak i kod LUA z powodzeniem może być zastosowany dla każdego urządzenia sterowanego pilotem, czyli do bramy wjazdowej, garażowej, rolet, żaluzji, itd.

W tym artykule:

  1. Przedstawię konfigurację i kod LUA umożliwiający sterowanie Twoim urządzaniem ze smartfonu dla instalacji opartej o urządzenia  FIBARO.
  2. Pokażę, jak dodać przyciski ścienne tak, aby oprócz sterowania z pilota oryginalnego i ze smartfona można było również lokalnie zamykać/otwierać, włączać/wyłączać urządzenie z wygodnego przełącznika na ścianie.
  3. Wyjaśnię, gdzie i jak zdefiniować w systemie warunek, aby markiza została automatycznie zwinięta, gdy prędkość wiatru przekroczy np. 14km/h.

Jak za pomocą dwóch wyjść sterować trzema przyciskami pilota?

W poprzedniej części dowiedziałeś się, że moduł Smart Implant ma dwa wyjścia cyfrowe, podczas gdy mój pilot do markizy jest wyposażony w trzy przyciski. Na szczęście są trzy sposoby rozwiązania tej sytuacji, które przedstawiłem Ci wcześniej. Jednym z nich jest umiejętne wykorzystanie jednego modułu z dwoma wyjściami cyfrowymi.

Chcąc z dwóch wyjść cyfrowych zrobić trzy trzeba sięgnąć do systemu kodowania binarnego.

Oto mój pomysł…

Poniżej wersja finalna i jej praca na żywo. Pilot jest sterowany przez Smart Implant FIBARO zamknięty w puszce elektrycznej wraz z przełącznikiem roletowym.

Finalny produkt Smart Implant sterujący pilotem do markizy

Skoro nie masz tyle wyjść przekaźnikowych ile jest obwodów (przycisków na pilocie), musisz obecne dwa wyjścia z modułu Smart Implant użyć do kodowania binarnego rozkazu. Na dwóch bitach można zakodować aż 4 stany, czyli dokładnie tyle, ile jest Ci potrzebne. Poniższa tabela przedstawia stany pilota jakie musisz obsłużyć.

Smart Implant wyjście Q1Smart Implant wyjście Q2Rozkaz wysłany do pilotaNumer przekaźnika zwierającego obwód pilota
00Spoczynek (żaden przycisk nie jest wciśnięty)brak (wszystkie przekaźniki rozwarte)
01zwijaniePrzekaźnik 1
10rozwijaniePrzekaźnik 2
11stopPrzekaźnik 1
i Przekaźnik 2

Za pomocą wyjść cyfrowych Q1 i Q2 przyjmujących stany (0 i 1)  Smart Implant będzie kodował rozkazy dla pilota. Nie będzie bezpośrednio zawierał obwodów pilota, tak jak to zaproponowałem w pierwszym artykule.

Obwody pilota będą zawierane przez dodatkowe 3 przekaźniki sterowane przez demultiplex. Demultiplexer rozkoduje otrzymane binarne polecenie ze Smart Implant i wysteruje odpowiednie przekaźniki (patrz schemat ideowy poniżej).

Schemat ideowy rozwiązania
Schemat ideowy rozwiązania

W swoim rozwiązaniu użyłem demultiplexer 74HC4051, który jest urządzeniem 8 kanałowym, kodowanym przez 3 wejścia S0, S1, S2 – koszt około 10 PLN. Ograniczyłem się do wykorzystania 2 wejść na sygnały od Q1 i Q2. Dzięki temu uzyskałem możliwość zakodowania 4 stanów, a dokładnie 3 wyjść (Y7, Y6, Y5) podpiętych do 3 przekaźników sterujących obwodami pilota.

Poniższe zdjęcie pokazuje demuliplexer przylutowany do wejść sterujących przekaźnikami.

Podłączenie demulitplexer do przekaźników
Podłączenie demulitplexer do przekaźników

Jako przekaźniki zwierające obwody pilota, zastosowałem moduł SRD-05 z czterema przekaźnikami na płytce. (cena 14 PLN).

N

Wyjścia przekaźnikowe zwierające obwody pilota
Wyjścia przekaźnikowe zwierające obwody pilota

Uwaga: Pamiętaj, aby dobrać odpowiednie wspólne bezpieczne napięcie zasilania dla demuliplex oraz przekaźników. Ja zdecydowałem się na napięcie 5V, pomimo że Smart Implant zasilam napięciem 12V.

W realizacji przedstawionego rozwiązania pomagała mi profesjonalna firma projektująca urządzenia i systemy elektroniczne Pana Tomasza Radomskiego właściciela firmy Inowatronika.

Demultiplexer wraz z przekaźnikami, współpracując razem ze Smart Implantem pozwolą Ci na odpowiednie “wciskanie” przycisków pilota. 

Po zbudowaniu całego układu zgodnie z zdjęciami powyżej moja markiza rozwijała się i zwijała bez najmniejszych problemów ale nie mogłem jej zatrzymać w trakcie zwijania lub rozwijania. Okazało się, że prawidłowe wydanie komendy „stop” jest nie lada wyzwaniem.

Chcesz wiedzieć dlaczego? Czytaj dalej.

Wyzwanie przy rozkazie „stop”

Zgodnie z tabelą rozkazów pokazaną powyżej, polecenie „stop” wymaga jednoczesnego podania na wyjście Smart Implant dwóch sygnałów wysokich (1 , 1) co demultiplexer natychmiast interpretuje wystawiając stan wysoki na swoim trzecim wyjściu i trzeci przekaźnik zamyka obwód przycisku „stop” markizy. A przynajmniej tak mówi teoria 🙂

Następnie (zgodnie z tabelą rozkazów) każdy rozkaz, w tym komendę „stop”, należy odwołać przełączając Smart Implant w stan spoczynku – (0 , 0) po mniej więcej kilkuset milisekundach. Będzie to odpowiadało krótkiemu wciśnięciu i zwolnieniu przycisku „stop” na pilocie. 

Aby przejść w stan spoczynku (0 , 0) należy zdjąć jednocześnie obie jedynki z obu przekaźników Smart Implant, jeśli tego nie zrobisz to przez ułamek sekundy będzie stan pośredni (0 , 1) lub (1 , 0). Z takim przypadkiem mamy tu do czynienia.

Pomimo, że w kodzie LUA sterującym pracą modułu Smart Implant wydasz polecenie ustawienia Q1 na 0 oraz Q2 na 0 linię po linii, Smart Implant nie wykona tego jednocześnie

Zastanawiasz się jaka jest przyczyna takiego stanu?

Zasięgnąłem wiedzy zespołu deweloperskiego firmy FIBARO i dowiedziałem się, że takie zachowanie jest podyktowane bezpieczeństwem. System FIBARO po napotkaniu komend (poniżej) odnoszących się do modułu zewnętrznego, jakim jest Smart Implant, zachowuje się w następujący sposób.

  -- zakończenie rozkazu "STOP" - reset obu wyjść
   fibaro:call(296, "turnOff") 
   fibaro:call(297, "turnOff") 

Rozkaz otwarcia wyjścia Q1 (pierwsza linijka kodu) jest natychmiast wykonywany, ale system nie przechodzi do realizacji następnej linijki kodu. Zamiast tego czeka na potwierdzenie wykonania przez zewnętrzny moduł pierwszej instrukcji. Dopiero po otrzymaniu potwierdzenia od Smart Implant, że wyjście Q1 zostało otwarte (stan 0), następuje wykonanie drugiego polecenia (otwarcie wyjścia Q2). Ten czas pomiędzy wykonaniem polecenia linii nr 2 – Q1 i linii 3 – Q2 to kilkaset ms, co w zupełności wystarczy, aby demultiplexer odczytał to jako inny (niepożądany) rozkaz i wykonał polecenie zwijania markizy (0 , 1) zanim oba wyjścia zostaną otwarte (zresetowane).

Pliki z kodem LUA i widgetem dostaniesz po zapisaniu się do newslettera. Zapisz się tutaj poniżej.

Chcesz kod źródłowy i inne pliki gotowe do zastosowania?

Wpisz email, a dostaniesz dostęp do wszystkich kodów źródłowych i innych materiałów pomocniczych.

Potwierdzam swój email i zapis na bloga (zawszę mogę się wypisać)

Poniżej dla jasności cały cykl zakończenia rozkazu „stop” ze środkowym stanem przejściowym (niepożądanym).

(1 , 1) -> (0, 1) -> (0 , 0)

Jeśli masz markizę podobną do mojej, która po jednorazowym wydaniu polecenia zwijania lub rozwijania działa w ten sposób, że silnik markizy zwija lub rozwija płótno do końca, to podanym rozwiązaniem nigdy nie uda się wydać polecenia „stop”. Wynika to z faktu, że pośrednie (niechciane) polecenie – tu zwijanie (stan 0 , 1) będzie ostatnim poleceniem i nastąpi całkowite zwinięcie markizy. A chciałeś żeby markiza pozostała bez ruchu, prawda?

Spokojnie, z tej sytuacji również jest wyjście, wystarczy zapoznać się z dalszą częścią tekstu, by je poznać.

Ominięcie stanu przejściowego 

Tak naprawdę opisany stan przejściowy (poniżej zaznaczony grubą czcionką) pojawia się w dwóch sytuacjach:

  1. Podczas rozpoczęcia komendy „stop” (0 , 0) -> (1 , 0) -> (1 , 1)
  2. Podczas zakończenia komendy „stop” (1 , 1) -> (0 , 1) -> (1 , 1)

Pierwszy przypadek wydania rozkazu „stop” nie jest strategiczny, więc nie będę go szczegółowo opisywał. Wprawdzie stan przejściowy (1 , 0) się pojawi, co spowoduje wysłanie komendy rozwijania przed stanem właściwym (1 ,1) równoznacznym komendzie „stop”. Jednak stan przejściowy będzie utrzymywał się na tyle krótko, że markiza wcale bądź nieznacznie się przesunie i dlatego uważam go za mało istotny.

Drugi przypadek jest strategiczny dla prawidłowej pracy markizy. Jak opisałem w poprzednim rozdziale, uniemożliwia on zatrzymanie markizy w żądanym położeniu, gdyż ostatnim poleceniem wydanym przez układ będzie stan przejściowy (0 , 1) czyli zwijanie. Zamiast zatrzymać markizę w żądanej pozycji, za każdym razem nastąpi jej całkowite rozwinięcie.

A to nie jest pożądany przez Ciebie efekt.

Rozwiązanie polega na tym, aby w sytuacji przejścia w stan spoczynku z polecenia „stop” przytrzymać jedno z wyjść Smart Implant do chwili, kiedy drugie nie zostanie otwarte (zresetowane). Dzięki czemu przechodząc ze stanu (1 , 1) na (0, 0) nie pojawi się stan przejściowy (0 , 1). Taki efekt osiągnąłem dzięki dodaniu paru elementów logicznych (scalonych układów logicznych) do mojego układu pomiędzy wyjścia Q1 i Q2 ze Smart Implant, a przed wejściem na demultiplexer.

Przedstawione powyżej rozwiązanie jest dość skomplikowane. Wymaga wiedzy i umiejętności lutowania. Rozwiązanie opiera się o użycie bramek logicznych AND, OR, NOR oraz przerzutnika RS.

Schemat logiki rozwiązujący problem komendy "stop"
Schemat logiki gwarantujący stabilną komendę „stop”

Podpięcie przełącznika ściennego

Tak jak wspomniałem na początku artykułu do łatwej obsługi markizy, bramy, żaluzji czy innego urządzenia warto, abyś rozważył możliwość sterowania nim także za pomocą lokalnego przełącznika ściennego. Dzięki temu, gdy potrzebujesz skorzystać z urządzenia nie musisz ani szukać oryginalnego pilota ani sięgać po smartfona z aplikacją, wystarczy, że przyciśniesz przycisk na ścianie (taki jak poniżej).

Przełącznik roletowy z dwoma przyciskami
Przełącznik roletowy z dwoma przyciskami

Rozwiązanie polega na tym, że przyciski na ścianie będą także pośrednio “naciskać” odpowiedni przycisk pilota wymuszając w ten sposób bezpieczne nim sterowanie.

Smart Implant jest wyposażony w dwa wejścia cyfrowe, które się do tego celu świetnie nadają. Kupiłem dwuklawiszowy łącznik roletowy (zdjęcie powyżej), w którym wciśnięcie przycisku powoduje zamknięcie jednego z dwóch obwodów przełącznika ściennego. Informacja o wciśniętym przycisku ściennym zostanie wysłana do jednego z dwóch wejść modułu Smart Implant.

Jeśli masz inny system inteligentnego domu na pewno jego producent ma możliwość podpięcia wejść cyfrowych w podobny sposób, jak do Smart Implant. Wejścia cyfrowe do swojego modułu podłączysz korzystając z dołączonej do urządzenia instrukcji.

Kolejnym etapem po podpięciu wejść cyfrowych będzie ich przetestowanie. Moduł Fibaro wymaga pewnych ustawień Smart Implant do testów, które szczegółowo przedstawię w kolejnym rozdziale.

Konfiguracja Smart Implant 

Po wykonaniu wszystkich połączeń elektrycznych przyszedł czas na odpowiednie skonfigurowanie środowiska programistycznego FIBARO

Po dodaniu Smart Implant do systemu (według instrukcji) wejdź w jego podstawowy moduł, czyli Urządzenia -> Smart Implant (rys.1), nazwij go (rys.2) i przejdź do zakładki zaawansowane (rys.3). Tutaj zwróć uwagę na następujące nastawy:

  1. Ochrona dostępu: ustaw na „ON” – dzięki czemu naciśnięcie przycisku będzie kontrolowane przez scenę, którą utworzysz później.
  2. Konfiguracja wejść: Jeśli użyłeś łącznik roletowy z typowymi przyciskami monostabilnymi to dla obu wejść wybierz typ „Monostabilny”.
  3. Aktywacja scen po naciśnięciu przycisku: Tu określasz czy Smart Implant ma aktywować system CentralSceneEvent, odpowiedzialny za zdarzenia takie jak wciśnięcie przycisku. Tutaj także określasz jakie zdarzenia, np. pojedyncze lub podwójne naciśnięcie przycisku, będzie zgłaszane do systemu FIBARO. Wybierz pojedyncze kliknięcie dla zwijania i rozwijania i podwójne dla zatrzymania markizy.
  4. Czas po jakim wyście ze Smart Implant zostanie automatycznie wyłączone. Jak pamiętasz wyjścia Q1 i Q2 odzwierciedlają pośrednio proces naciśnięcia i puszczenia przycisku na pilocie, więc ustaw czas automatycznego wyłączenia na 800ms lub 1s. Prawidłowe dobranie czasu wymaga testów tego jak szybko pilot będzie realizował wysłanie sygnału do urządzenia.

Teraz po skonfigurowaniu Smart Implant i zapisaniu ustawień (ikona dyskietki), powinieneś oprogramować zdarzenie naciśnięcia przycisku ściennego, który będzie zwijał, rozwijał i zatrzymywał markizę oraz stworzyć wirtualne urządzenie do łatwego sterowania markizą na smartfonie.

Sterowanie urządzeniem z przełącznika ściennego

CentralSceneEvent to system, który monitoruje zdarzenia takie, jak wciśnięcie podłączonych przycisków wyłączników w systemie FIBARO. Jeśli system jest odpowiednio skonfigurowany (patrz rozdział powyżej) wciśnięcie przycisku wygeneruje zdarzenie, które zostanie zarejestrowane w menedżerze zdarzeń znajdującym się w CentralSceneEvent. Menedżer ten wywoła określoną scenę celem wykonania pewnych instrukcji. Zdarzenia, które zostały zdefiniowane podczas konfiguracji Smart Implant to pojedyncze i podwójne naciśnięcie przycisków przełącznika ściennego. Podsumuję to w poniższej tabelce. 



Przycisk 1
pojedyncze naciśnięcie 
Przycisk 2
pojedyncze naciśnięcie 
Przycisk 1
podwójne naciśnięcie
Przycisk 2
podwójne naciśnięcie 

Komenda wysłana do pilotaRozwińZwińStopStop
Wyścia (Q1 , Q2) Smart Implant(1 , 0)(0 , 1)(1 , 1)(1 , 1)
Nazwa Sceny obsługującej zdarzenieMar Przycisk RozwinMar Przycisk Zwin Mar Przycisk Rozwin Mar Przycisk Zwin
Nazwa i adres zdarzenia291 CentralSceneEvent 1 291 CentralSceneEvent 2 291 CentralSceneEvent 1 291 CentralSceneEvent 2

Teraz zdefiniuj dwie niezależne sceny ” Mar Przycisk Rozwin” i ” Mar Przycisk Zwin”, które będą wykonywane po naciśnięciu pojedynczym lub podwójnym przycisku zwijania i rozwijania markizy.

W tym celu utwórz nową scenę LUA, nazwij ją odpowiednio i skopiuj podany fragment kodu w pole edytora języka LUA tej sceny.

-[[
 % properties
 % events
 291 CentralSceneEvent 1
 % globals
 --]]
-- MARKIZA - zostal wcisniety przycisk sterujacy rozwijania makizy (klawisz strzalka w gore)
 -- Add 291 CentralSceneEvent to adress zdarzen Przycisku 1 Markizy 
 print("Sterowanie przyciskami do markizy")
local trigger = fibaro:getSourceTrigger()
if trigger["type"] ~= "other" then -- scena uruchomiona inaczej niz recznie
--analiza jakie zdarzenie wywolalo te scene
   local pressSource = trigger["event"]["data"]
	if (tostring(pressSource["keyAttribute"]) == "Pressed") then
     	print("jedno kliknięcie")
  	 	fibaro:call(296, "turnOn") -- rozwin
	elseif (tostring(pressSource["keyAttribute"]) == "Pressed2") then
   		print("podwójne kliknięcie")
   		-- ustaw kod binary "STOP"
   		fibaro:call(296, "turnOn") 
   		fibaro:call(297, "turnOn") 
  	end
end

Komendy print służą wpisaniu komunikatu na diagnostyczny ekran pod sceną i mogą być usunięte.

W podanym kodzie musisz podmienić adresy linii 4, 16, 20 i 21, aby były zgodne z adresacją w Twoim Smart Implant.

Pamiętaj, że właściwy adres znajdziesz posługując się menu po lewej stronie edytora kodu wskazując parametr interesującego Cię urządzenia tak jak na poniższym zrzucie przy poszukiwaniu adresu wyjścia Q1 Smart Implant.

Wykonanie kroków 1 -> 2 -> 3 spowodują wpisanie do edytora linijki takiej jak poniżej. W podobny sposób zastąp linie 16, 20 i 21.

fibaro:call(296, "turnOn")

Trudniejsze jest znalezienie właściwego adresu (wymaganego w linii 4) dla zdarzenia naciśnięcia przycisku na przełączniku ściennym. Aby skorzystać z podpowiedzi z lewego menu, należy znaleźć pod-urządzenie markizy odpowiedzialne za obsługę zdarzeń, które domyślnie jest ukryte.

W tym celu należy:

  1. W głównym urządzeniu Smart Implant odnaleźć pod-urządzenie – pilot z symbolem klapsy filmowej (z reguły jest ono jako trzecie). 
  2. W ustawieniach zaawansowanych pod-urządzenia z obrazkiem klapsy filmowej (zrzut poniżej) usuń zaznaczenie „To urządzenie nie jest pozkazywane w systemie”. Usunięcie zaznaczenia pozwoli Ci wyświetlić to pod-urządzenie w systemie podczas auto-uzupełniania kodu w LUA z lewego menu. Zwróć uwagę także na adres IP. U mnie jest to adres 291, który zostanie automatycznie wygenerowany przez lewe menu za chwilę.
  3. Na koniec wróć do kodu sceny „Mar Przycisk Rozwin” i w górnej części kodu w 4 linii, gdzie następuje definiowanie, kiedy scena ma być wywołana, jest zapis „291 CentralSceneEvent 1”, który musisz zastąpić swoim odpowiednikiem. W tym celu usuń moją linijkę i z menu po lewej stronie wybierz odnalezione pod-urządzenie z kroku poprzedniego wskazując „Przycisk 1″”Przycisk 1”.

W ten sposób prawidłowo stworzyłeś kod obsługujący rozwijanie i zatrzymywanie markizy przez 1-szy przycisk przełącznika ściennego.

W analogiczny sposób stwórz nową scenę o nazwie np „Mar Przycisk Zwin” i skopiuj podany fragment kodu w pole edytora języka LUA tej sceny.

-[[
 % properties
 % events
 291 CentralSceneEvent 2
 % globals
 --]]
-- MARKIZA - zostal wcisniety przycisk sterujacy zwijania makizy (klawisz strzalka w dol)
 -- Add 291 CentralSceneEvent to adress zdarzen Przycisku 2 Markizy 
 print("Sterowanie przyciskami do markizy")
 local trigger = fibaro:getSourceTrigger()
 if trigger["type"] ~= "other" then -- scena uruchomiona inaczej niz recznie
--analiza jakie zdarzenie wywolalo te scene
   local pressSource = trigger["event"]["data"]
	if (tostring(pressSource["keyAttribute"]) == "Pressed") then
   		print("jedno kliknięcie")
   		fibaro:call(297, "turnOn") -- zwin
	elseif (tostring(pressSource["keyAttribute"]) == "Pressed2") then
   		print("podwójne kliknięcie")
   		-- ustaw kod binary "STOP"
   		fibaro:call(297, "turnOn") 
   		fibaro:call(296, "turnOn") 
    end
end

W powyższym kodzie musisz zmienić ponownie adresy w liniach 4, 16, 20 i 21.

To wszystkie działania, jeśli chodzi o konfiguracje zdarzeń. Teraz powinieneś móc zwijać i rozwijać markizę przez pojedyncze naciśnięcie przycisku ściennego, a podwójne przyciśnięcie powoduje jej zatrzymanie.

Utworzenie wirtualnego urządzenia dla markizy

Wirtualne urządzenie to urządzenie, którego działanie zostaje określone przez kod LUA. Sterowanie markizą wymaga naprawdę bardzo prostego kodu. Dzięki niemu na smartfonie pojawi się widget z 3 przyciskami podobny do oryginalnego pilota markizy. Poniżej widget, który wykonasz w kilku prostych krokach (poza ikonami, których narysowanie i dodanie pozostawiam Tobie).

Widget na smartfon do sterowania markizą
Widget na smartfon do sterowania markizą

Aby stworzyć widget podobny do tego powyżej:

  1. Przejdź do urządzeń i dodaj urządzenie wirtualne.
  2. Następnie nazwij urządzenie np. Markiza.
  3. W zakładce „Zaawansowane” zaznacz konfigurację „Trzy przyciski na wiersz” i naciśnij przycisk „Dodaj zestaw”, co automatycznie rozszerzy edytor LUA.
  4. Nazwij przyciski, skonfiguruj zaznaczone opcje i wpisz kod podobny do mojego podmieniając adresy ID na swoje według przykładu poniżej.
  5. Zapisz tak stworzone wirtualne urządzenie w systemie przez naciśnięcie ikony dyskietki.

I to już cała wymagana konfiguracja w tworzeniu bardzo użytecznego widgetu Twojej markizy.

Proste prawda?

Możesz ją przetestować naciskając stworzone przyciski „Rozwiń”, „Zwiń”, „Stop” w przeglądarce lub od razu na swoim smartfonie 🙂

Pamiętaj tylko o dodaniu tego urządzenia do konkretnej strefy (jakiegoś „Pokoju”), aby można było Twój widget odnaleźć w aplikacji na smartfon.

Pliki z kodem LUA i widgetem dostaniesz po zapisaniu się do newslettera. Zapisz się tutaj poniżej.

Chcesz kod źródłowy i inne pliki gotowe do zastosowania?

Wpisz email, a dostaniesz dostęp do wszystkich kodów źródłowych i innych materiałów pomocniczych.

Potwierdzam swój email i zapis na bloga (zawszę mogę się wypisać)

Automatyczne zwinięcie markizy przed silnym wiatrem

Jeśli chcesz, aby system sam zwinął markizę dopisz scenę, która będzie odpowiadać za to polecenie. Scena będzie wywoływana za każdym razem, gdy zmianie ulegnie siła wiatru. Oczywiście wewnątrz sceny określasz jaka wartość siły wiatru powinna zostać przekroczona, aby system zwinął markizę bez twojej ingerencji. 

Do odczytania aktualnej pogody wykorzystaj domyślny wbudowany system pogodowy uwzględniający podaną lokalizację. 

  1. Dodaj nową scenę LUA o nazwie np. „Mar silny wiatr”.
  2. Skopiuj podany przeze mnie kod, który znajdziesz poniżej.
  3. W linii 13 podmień adres IP dla wyjścia Q zwijającego markizę.
  4. Możesz ustawić siłę wiatru, powyżej której markiza zostanie zwinięta w linii 8 po znaku „>”.
--[[
% weather
Wind
--]]

local weather = api.get("/weather")

if tonumber(weather.Wind) > 14.0 then
  print("UWAGA!!! SILNY WIATR: zwijam markize")
 
  fibaro:call(130, "sendPush", "UWAGA!!! SILNY WIATR: zwijam markize") --notyfikacja smartfone
  
  fibaro:call(297, "turnOn") -- zwin
end

Od tej chwili system będzie monitorował każdą zmianę siły wiatru i po wykryciu ustawionego odchylenia od normy zwinie markizę automatycznie.

Dodatkowo możesz wysłać notyfikację do siebie na smartfona dzięki linii 11, po tym jak zdefiniujesz swój smartfon w centrali systemu (u mnie ma on ID = 130)

Dodam, że w ten sposób możesz monitorować zmiany także np. temperatury jeśli w linii 3 zamiast zmiennej „Wind” wpiszesz „Temperature”. To wynika z zawartości tablicy jaka jest zwracana przez zmienną „weather” w linii 6, patrz kod poniżej.

 for i, v in pairs(weather) do
      print(i, v)
    end
---------------------------------
[DEBUG] 13:06:02: Temperature 15.6
[DEBUG] 13:06:02: Humidity 52.2
[DEBUG] 13:06:02: Wind 26.28
[DEBUG] 13:06:02: WeatherCondition cloudy
[DEBUG] 13:06:02: TemperatureUnit C
[DEBUG] 13:06:02: ConditionCode 26
[DEBUG] 13:06:02: WindUnit km/h

Podsumowanie

W ten sposób wykorzystując kopię oryginalnego pilota do markizy lub innego urządzenia sterowanego przez pilot: brama garażowa, brama wjazdowa czy żaluzje, zasłony itp. możesz nim sterować zdalnie ze smartfona.

Dodatkowo, w bardzo prosty sposób, możesz rozszerzyć zdalne sterowanie o czynności bezpieczeństwa.

W przypadku opisanego sterowania markizą możliwość jej złożenia jest nieoceniona, kiedy zapomnisz tego zrobić przed wyjazdem z domu.

Mało tego, jesteś w stanie dodać funkcjonalność, którą posiadają urządzenia z górnej półki – zabezpieczenie przed zbyt silnym wiatrem. W przypadku gdy warunki meteorologiczne się popsują system sam zwinie markizę i zabezpieczy ją przed zniszczeniem.

Mam nadzieję, że ten szczegółowy artykuł będzie dla Ciebie inspiracją i przewodnikiem.

W razie wszelkich wątpliwości lub pytań napisz w komentarzu.

Pochwal się jakie urządzenie podpiąłeś w ten sposób do swojego systemu inteligentnego domu.

Dobry dom musi być jak okręt,
Dobry gospodarz – jak kapitan.
Powrót do części 1 artykułu

image_pdfimage_print