setAutoState — управление автоматизацией устройства из скрипта.

Описание:

u8 setAutoState(SUBID, u8 time);

u8 setAutoState(ID:SUBID, u8 time);

Запускает или выключает автоматизацию на устройстве на определенный временной интервал time.

Список параметров:

SUBID

Адрес устройства , на которой расположен скрипт.

ID:SUBID

Адрес устройства.

time

· Значение больше 0 – выключить автоматизацию устройства на time секунд;

· 0 – включить автоматизацию устройства;

· -1 или -2 – выключить автоматизацию устройства до тех пор, пока она не включится другим setAutoState’ом или пока модуль не будет сброшена по питанию.

Пример:

<!-- Пример: 1 -->

<item id="512" LAMP="512:8" name="Тест для функции delayedCallR" type="script">

V-ID/V-ADDR
{
	if(opt0())
	{ 
		// Включаем автоматизацию
		setAutoState(8, 0);		
		u8 strForMess[150]; 

		// Проверка статуса автоматизации
		i8 sttOfAuto = autoState(8);

		// Вывод сообщения в интерфейс
		if(sttOfAuto == 0) 
		{
			sprintf(strForMess, "%cАвтоматизация включена!", 1);
			setStatus(@exciterId():32, &strForMess);		
		}
		else if(sttOfAuto > 0)
		{
			sprintf(strForMess, "%cДо включения автоматизации %d секунд", 4, sttOfAuto);
			setStatus(@exciterId():32, &strForMess);		
		}
		else
		{
			setStatus(@exciterId():32, {8, "Автоматизация отключена!"});
		}		
	}
}

</item>

<!-- Пример: 2 -->

<item id="512" LAMP="512:8" name="Тест для функции setAutoState" type="script">

V-ID/V-ADDR
{
	if(opt0())
	{ 
		// Выключаем автоматизацию
		setAutoState(8, -1);		
		u8 strForMess[150]; 

		// Проверка статуса автоматизации
		i8 sttOfAuto = autoState(8);

		// Вывод сообщения в интерфейс
		if(sttOfAuto == 0) 
		{
			sprintf(strForMess, "%cАвтоматизация включена!", 1);
			setStatus(@exciterId():32, &strForMess);		
		}
		else if(sttOfAuto > 0)
		{
			sprintf(strForMess, "%cДо включения автоматизации %d секунд", 4, sttOfAuto);
			setStatus(@exciterId():32, &strForMess);		
		}else
		{
			setStatus(@exciterId():32, {8, "Автоматизация отключена!"});
		}		
	}
}

</item>

<!-- Пример: 3 -->

<item id="512" LAMP="512:8" name="Тест для функции setAutoState" type="script">

V-ID/V-ADDR
{
	if(opt0())
	{ 
		// Выключаем автоматизацию на 10 секунд
		setAutoState(8, 10);		
		u8 strForMess[150]; 

		// Проверка статуса автоматизации
		i8 sttOfAuto = autoState(8);

		// Вывод сообщения в интерфейс
		if(sttOfAuto == 0) 
		{
			sprintf(strForMess, "%cАвтоматизация включена!", 1);
			setStatus(@exciterId():32, &strForMess);		
		}
		else if(sttOfAuto > 0)
		{
			sprintf(strForMess, "%cДо включения автоматизации %d секунд", 4, sttOfAuto);
			setStatus(@exciterId():32, &strForMess);		
		}
		else
		{
			setStatus(@exciterId():32, {8, "Автоматизация отключена!"});
		}		
	}
}
</item>

Результат выполнения данного примера:

Результат примера 1:

"Автоматизация включена!"

Результат примера 2:

" Автоматизация отключена!"

Результат примера 3:

"До включения автоматизации 10 секунд!"

Примечание:

    1. Если скрипт расположен на том же модуле что и оборудование, первым параметром передается только SUBID устройства.

    2. Если скрипт и оборудование расположен на разных модулях, первым параметром передается ID:SUBID устройства.

  1. Внимание:
    отключив автоматизацию использую функцию setAutoState(ID:SUBID, -1), при изменении состояния исполнителя, автоматизация включиться(по истечению времени автопериода).