Горячая линия Embedded System Rus:8-800-775-06-34 (звонок по России бесплатный)

LM5_N
LM-Wall_N
DALI_N
Vita_N

Получение данных о состоянии подключения KNX/TP

Добавление необходимых объектов для хранения данных

Первым шагом создадим KNX объект с типом данных 1 бит, в котором у нас будет записываться текущее состояние подключения к шине KNX/TP. Назовём объект KNX Status, где значение true будет показывать присутсвие подключения, а false – отстутствие.

Возможны два решения:

  1. Используя данные из вкладки Alerts, куда записываются сообщения о подключении и отключении KNX/TP
  2. Отслеживая системные сообщения.

Первый способ

Создаём резидентный скрипт (Resident Script) с таймером (Sleep) 30 или 60 секунд. Добавляем следующий скрипт

query = "select id,alert,alerttime from alerts WHERE alert LIKE 'KNX/TP%' 
order by id desc limit 1" 
alerts_res = db:getall(query)  
 
if alerts_res[1].alert == 'KNX/TP: Disconnected' then   
    grp.write('KNX Status', false) 
end 
 
if alerts_res[1].alert == 'KNX/TP: Connected' then  
    grp.write('KNX Status', true) 
end

Второй способ

Создаём резидентный скрипт (Resident Script) с таймером (Sleep) 0 секунд. Добавляем следующий скрипт

if not client then   
    require('genohm-scada.eibdgm')   
 
    function statushandler(status)     
        if status == 0x00 then       
            grp.write('KNX Status', true)     
            elseif status == 0xFF then       
            grp.write('KNX Status', false)     
        end   
    end   
    client = eibdgm:new()   
    client:sethandler('status', statushandler) 
end 
 
client:step()