Поменял * на (.*) - всё работает. Спасибо.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
<parser>
<file>*System</file>
<rules>
<rule>
<level>1</level>
<match>*</match>
<event params="1">100012</event>
</rule>
</rules>
</parser>
sub main()
{
if ( GetDCIValue($node, FindDCIByDescription($node, "1SensorLocale")) == "ambient" )
return GetDCIValue($node, FindDCIByDescription($node, "1SensorData"));
if ( GetDCIValue($node, FindDCIByDescription($node, "2SensorLocale")) == "ambient" )
return GetDCIValue($node, FindDCIByDescription($node, "2SensorData"));
if ( GetDCIValue($node, FindDCIByDescription($node, "3SensorLocale")) == "ambient" )
return GetDCIValue($node, FindDCIByDescription($node, "3SensorData"));
if ( GetDCIValue($node, FindDCIByDescription($node, "4SensorLocale")) == "ambient" )
return GetDCIValue($node, FindDCIByDescription($node, "4SensorData"));
if ( GetDCIValue($node, FindDCIByDescription($node, "5SensorLocale")) == "ambient" )
return GetDCIValue($node, FindDCIByDescription($node, "5SensorData"));
return 0;
}
set i=1; //define integer variable
while ( i < 6 ) //cycle from 1Sensor[Locale/Data] to 5Sensor[Locale/Data]
{
if ( GetDCIValue($node, FindDCIByDescription($node, right("SensorLocale", 13, i))) == "ambient" ) // is [N]SensorLocale == "ambient" ?
{
if ( GetDCIValue($node, FindDCIByDescription($node, right("SensorData", 11, i))) > 20 ) // is ambient sensor overheat?
{
return GetDCIValue($node, FindDCIByDescription($node, right("SensorData", 11, i))); // if true, true then get data from ambient sensor
};
};
i++;
};
return 0; // return current temperature from overheated ambient sensor, or 0.