Smart Panel jako manipulator systemu alarmowego

Czasem pojawia się potrzeba wykonania autoryzacji jakiejś operacji hasłem. W systemach alarmowych mamy manipulator z klawiaturą, który nam to umożliwia. W Systemie Grenton, autoryzacja może zostać wykonana za pomocą Smart Panelu. 

Poniżej prezentujemy instrukcję jak można to wykonać.


Do wykonania tej instrukcji potrzebne jest:

  • CLU Z-Wave
  • Grenton Smart Panel
  • opcjonalnie moduł Gate Alarm




1. Przygotowanie cech użytkownika, które będą zliczały ilość naciśnięć danego Buttonu.

2. Przygotowanie skryptu o przykładowej nazwie "ekran_alarm", który zrealizuje wyświetlanie strony "ALARM"

Skrypt ma za zadanie sprawdzić wartość cechy np. stan systemu alarmowego (Gate_Alarm->alarm_stan==1) a następnie ustawić odpowiedni ekran.

CLU->x250003191_PANEL1->ClearScreen()
CLU->x250003191_PANEL1->PrintText(45,10,"ALARM",1.5)
CLU->x250003191_PANEL1->DrawLine(0,25,127,25,1)
if(Gate_Alarm->alarm_stan==1) then
CLU->x250003191_PANEL1->DrawIcon(60,35,"locked")
CLU->x250003191_PANEL1->PrintText(15,40,"Odblokuj",1.5)
CLU->x250003191_PANEL1->DisplayContent()
CLU->x250003191_PANEL_BUTTON1->RedLedSwitchOn()
CLU->x250003191_PANEL_BUTTON2->RedLedSwitchOn()
CLU->x250003191_PANEL_BUTTON3->RedLedSwitchOn()
CLU->x250003191_PANEL_BUTTON4->RedLedSwitchOn()
else
CLU->x250003191_PANEL1->DrawIcon(60,35,"unlocked")
CLU->x250003191_PANEL1->PrintText(15,40,"Odblokuj",1.5)
CLU->x250003191_PANEL1->DisplayContent()
CLU->x250003191_PANEL_BUTTON1->LedSwitchOn()
CLU->x250003191_PANEL_BUTTON2->LedSwitchOn()
CLU->x250003191_PANEL_BUTTON3->LedSwitchOn()
CLU->x250003191_PANEL_BUTTON4->LedSwitchOn()
end

 

3. Konfiguracja Smart Panel

W obiekcie "PANEL_PAGE1" wprowadzamy ustawienia jako poniżej:




W obiektach "PANEL_BUTTON1", "PANEL_BUTTON2", "PANEL_BUTTON3" i "PANEL_BUTTON3" wprowadzamy komendy, które zrealizują inkrementację cech użytkownika "button_1", "button_2", "button_3", "button_4"




4. Aktywacja, dezaktywacja czuwania alarmu i sprawdzanie PIN

Aby użytkownik mógł wprowadzić PIN, należy określić czas w jakim hasło powinno zostać wprowadzone. W tym celu można przygotować obiekty wirtualny Timer o przykładowej nazwie "czas_na_PIN"



Każde uruchomienie Timera realizuje zerowanie wartości cech użytkownika.


W celu poinformowania użytkownika o możliwości wprowadzania hasła lub o tym, że alarm został aktywowany należy przygotować skrypt o nazwie "wprowadz_PIN":

if(Gate_Alarm->alarm_stan==1) then
CLU->x250000023_PANEL1->ClearScreen()
CLU->x250000023_PANEL1->PrintText(20, 25, "WPROWADŹ PIN", 1.500)
CLU->x250000023_PANEL_BUTTON1->ShowError()
CLU->x250000023_PANEL_BUTTON2->ShowError()
CLU->x250000023_PANEL_BUTTON3->ShowError()
CLU->x250000023_PANEL_BUTTON4->ShowError()
CLU->x250000023_PANEL1->DisplayContent()
CLU->czas_na_PIN->Start()
CLU->x250000023_PANEL1->SwitchOnDisplay()
else
Gate_Alarm->alarm_stan==1
CLU->ekran_alarm()
end

 

skrypt "zly_PIN" , który poinformuje użytkownika o nieprawidłowym haśle

CLU->x250000023_PANEL1->ClearScreen()
CLU->x250000023_PANEL1->PrintText(25, 25, "BŁĘDNY PIN!", 1.500)
CLU->x250000023_PANEL1->SetBeep(560, 230, 16, 0)
SYSTEM.Wait(200)
CLU->x250000023_PANEL1->SetBeep(260, 130, 16, 0)
CLU->x250000023_PANEL1->DisplayContent()
CLU->x250000023_PANEL1->SwitchOnDisplay()
CLU->x250000023_PANEL_BUTTON1->ShowError()
CLU->x250000023_PANEL_BUTTON2->ShowError()
CLU->x250000023_PANEL_BUTTON3->ShowError()
CLU->x250000023_PANEL_BUTTON4->ShowError()
SYSTEM.Wait(2000)
CLU->wprowadz_PIN()

 

skrypt "prawidłowy_PIN",który poinformuje użytkownika o poprawnym haśle

CLU->x250000023_PANEL1->SwitchOnDisplay()
CLU->x250000023_PANEL1->ClearScreen()
CLU->x250000023_PANEL1->PrintText(20, 15, "ALARM ", 1.500)
CLU->x250000023_PANEL1->PrintText(20, 30, "NIEAKTYWNY", 1.500)
CLU->x250000023_PANEL1->DisplayContent()
CLU->x250000023_PANEL_BUTTON1->ShowOK()
CLU->x250000023_PANEL_BUTTON2->ShowOK()
CLU->x250000023_PANEL_BUTTON3->ShowOK()
CLU->x250000023_PANEL_BUTTON4->ShowOK()
CLU->x250000023_PANEL1->SetBeep(560, 230, 16, 0)
SYSTEM.Wait(1000)
CLU->ekran_alarm()

 

Po upływie czasu jaki został przewidziany na wprowadzenie hasła, zostanie uruchomiony skrypt o przykładowej nazwie "sprawdz_PIN":

if(not (CLU->button_1==2)) then
CLU->zly_PIN()
else
if(not (CLU->button_2==3)) then
CLU->zly_PIN()
else
if(not (CLU->button_3==1)) then
CLU->zly_PIN()
else
if(not (CLU->button_4==1)) then
CLU->zly_PIN()
else
CLU->prawidlowy_PIN()
Gate_Alarm->alarm_stan=0
CLU->ekran_alarm()
end
end
end
end

 

Wyżej wymienione skrypty należy przypisać do zdarzeń jak poniżej:


W obiekcie wirtualnym Timer "czas_na_PIN"



W obiekcie "Panel_BUTTON3"


Dodatkowo, w cechach wbudowanych obiektu "Panel_BUTTON3" należy zwiększyć wartość cechy "HoldInterval"




Tak przygotowaną konfigurację należy wysłać do jednostki CLU.

Po długim naciśnięciu klawisza BUTTON3, alarm zostanie aktywowany. Gdy alarm jest aktywny, długie przytrzymanie klawisza BUTTON3 umożliwia wprowadzenie hasła.