Popup page sending states

Q:
for one project I would like to change the state of a button when a popup is shown
is it possible to integrate this and so,
 
what are the type and feedback relations I have to use?

A:
You can use the following listener events to determine whether a page or popup is shown or not.  just change it for your specific popup and add the code to adjust the global variable in the function of the listener.

  // triggered when popup 1 is shown
  IR.AddListener(IR.EVENT_ITEM_SHOW, IR.GetPopup("Popup 1"), function(){
  IR.Log("SHOWING POPUP 1");
  });

  //triggered when popup 1 is hidden
  IR.AddListener(IR.EVENT_ITEM_HIDE, IR.GetPopup("Popup 1"), function(){
  IR.Log("HIDING POPUP 1");
  });

Project Tokens Scripting

rocfusion:

Hi,

When you are using project tokens in your scripts. Be careful to watch for invalid tokens.

To account for this you could use something like this, it would be placed in the init part of your script.

if(IR.GetVariable("Global.MyToken")==undefined || IR.GetVariable("Global.MyToken")==NaN || IR.GetVariable("Global.MyToken")==null) { IR.SetVariable("Global.MyToken",0) }      

Here if MyToken is not valid it will reset to the value of 0.


Thanks,


Roger

Cant fill the value (info)

Q:
The line:

IR.GetItem("Popup").GetItem("Item 1").Value = 50;

Doesn't work in Javascript, If I use Text in stead of Value it works fine. 

A:
Please change  item property "Feedback" = channel.

APP FUNCTIONS: Show system menu

Download Example

 

Read manual:

Wiki RU

Wiki EN (coming soon)

How to add processing of pressings for several objects in one AddListener structure?

At the moment each interface item needs its own listener:

// array of items 
var gRegisters = [    
{item: IR.GetItem("Page 1").GetItem("1")},    
{item: IR.GetItem("Page 1").GetItem("2")},    
{item: IR.GetItem("Page 1").GetItem("3")}, 
];  

function OnPress() 
{ 	
        // when we do something when pressing of an array item, this. - an indicator to the item 	
        IR.Log("Pressed: " + this.Name); 	
        IR.Log(this.Name + " Value: " + this.Value); 
}  
// creation of listeners for all array items 
function RegisterButton() 
{    
    for(var i = 0; i < gRegisters.length; i++)   
    {       
       var item = gRegisters[i].item;       
       IR.AddListener(IR.EVENT_ITEM_PRESS, item, OnPress, item);    
    } 
}  
// the function which is executed at launch  
function Start() 
{   
    RegisterButton();

 }
 // begin creating listeners 
IR.AddListener(IR.EVENT_START,0, Start);
To get access to the data of a graphic item inside the OnPress function, it is necessary to refer to it using the link this. For example:

function OnPress() { 	
        var NameOfItem = this.Name; 	
        IR.Log( NameOfItem ); 
}

The possibility of reference to the data is achieved by sending the 4th parameter in the AddListener method:

IR.AddListener(IR.EVENT_ITEM_PRESS, item, OnPress, item);

You can learn the name of each item pressed or subscribe for pressings on all items in the project using the following instructions

Помогите сделать "бегущую строку"

Если текст не помещается в Item, то нужно его прокручивать. Желательно иметь возможность делать паузу перед началом прокрутки и выбирать скорость. То есть сделать стандартное поле для вывода данных о композиции у плеера.

Change Item Opacity (Transparency)

If you want to set the transparency of Item when the Light changes, you can do it directly (send Light Value to Item.Opacity) or via the script.
The script would be needed if your light changes from 0 to 100 untill the Opacity changes from 0 to 255.



// items
var Level = IR.GetItem("Main").GetItem("Light Level 1");
var Item = IR.GetItem("Main").GetItem("Light Item 1").GetState(0);
// driver name
var driver = IR.GetDevice("KNX Router (KNXnet/IP)");
//by Start
Item.Opacity = 0;
// change opacity manually (using ScriptCall function)
function OpacityChange ()
{
    Item.Opacity = Level.Value*255/100;
}
// change opacity by Feedback from equipment 
IR.AddListener(IR.EVENT_TAG_CHANGE , driver, function(name,value)
{
   Item.Opacity = Level.Value*255/100;
});
Opacity Change by Value.irpz


If you want to convert the feedback only use this script:

var FeedbackConvert;
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("KNX"), function(name, value)
{
if (name == "Address 1")
{
FeedbackConvert = (value*255)/100
IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Opacity = FeedbackConvert;
IR.Log("Value = "+ value)
}else{
IR.Log("unknown")
}
});