Posts: 176
Threads: 42
Joined: Jul 2015
Reputation:
2
I read that post earlier but didnt understand it completly.
Where do i input room number and how does it get correct values?
Posts: 1764
Threads: 6
Joined: Jul 2015
Reputation:
117
Hi,
It grabs the address from the widget button and then it search the class(es) of the button(s) on your widget, then it removes the original address of the widget button and it attach the new address calculated from the original widget address so you need a logical address structure.
BR,
Erwin
Posts: 176
Threads: 42
Joined: Jul 2015
Reputation:
2
ok. But where do I insert the text it shall link to?
In the widget i need the following values:
With push on the map of building on a room temperature a widget will open displaying current room temperature, set point, current % on heat output and link to trends for this values.
$(function(){
// Declare vars
var MainObject = "0/0/0";
var StatusObject = "0/0/0";
var MainObjectSplitted = [];
var StatusObjectSplitted = [];
// Detect adresses linked to widget button and create arrays
$(".screen_widget").on("click", function(e) {
MainObject = $(this).data("object");
StatusObject = $(this).data("status-object");
if (typeof(MainObject) !== 'undefined') {
MainObjectSplitted = MainObject.split("/");
}
if (typeof(StatusObject) !== 'undefined') {
var StatusObjectSplitted = StatusObject.split("/");
}
});
function removelistener(src) {
var el = $(src) // source element reference
, addr = el.data('status-object') // group address of status object
, id = Scada.encodeGroupAddress(addr) // address to id
, obj = objectStore.objects[ id ]; // get object's store reference
if (obj) {
// find listener that is attached to the source element
$.each(obj.listeners, function(index, listener) {
// remove the listener
if (listener.bind.el && el.is(listener.bind.el)) {
obj.listeners.splice(index, 1);
}
});
}
}
// Remove original events from up button on widget
$(".screen_widget_up")
.off("vclick")
.on("vmousedown", function() {
var btnthis = $(this), objthis = btnthis.data("object")
removelistener(btnthis);
})
// Add new action to button
.on("vclick", function() {
var newaddressup = (Number(MainObjectSplitted[0])+0) + "" + (Number(MainObjectSplitted[1])+1) + "" + (Number(MainObjectSplitted[2])+0)
grp.write(newaddressup, true);
}
);
// Remove original events from down button on widget
$(".screen_widget_down")
.off("vclick")
.on("vmousedown", function() {
var btnthis = $(this), objthis = btnthis.data("object")
removelistener(btnthis);
})
// Add new action to button
.on("vclick", function() {
var newaddressdown = (Number(MainObjectSplitted[0])+0) + "" + (Number(MainObjectSplitted[1])+1) + "" + (Number(MainObjectSplitted[2])+0)
grp.write(newaddressdown, false);
}
);
});
Posts: 176
Threads: 42
Joined: Jul 2015
Reputation:
2
Hi all
In next week I will start programming this building. I am not sure how to make this widget and script to make it work.
Could you explain it a bit more?
In the widget i want the following group adress:
Set temperature for the room
Status temperature of the room
Heat output status
Trend link to multiple trends for this values
I want to make one widget and make the group adresses change automaticaly to room number
Group adress names are
1/0/1 101 temperature status
1/0/2 101 temperature set point
1/0/3 101 heat output
This would make the programmering easier as I have almost 50 rooms.
Posts: 176
Threads: 42
Joined: Jul 2015
Reputation:
2
Hi
I dont understand how this one works. I tried it with 2 buttons with virtual adress but i cant write any value to them.
On push on widget the widget opens but the var main and status dont update to the value of the main/status on the main widget open button.
Can anyone explain this one to me?
Posts: 4643
Threads: 24
Joined: Aug 2017
Reputation:
207
Did you add additional classes to them?
screen_widget_up
screen_widget_down
------------------------------
Ctrl+F5
Posts: 176
Threads: 42
Joined: Jul 2015
Reputation:
2
Yes. I use virtual adresses. Is that ok or do it has to be real adress?
Should it work on 1byte also or only bit?
Posts: 4643
Threads: 24
Joined: Aug 2017
Reputation:
207
There is missing "/" in the code where new address is calculated
Code:
var newaddressup = (Number(MainObjectSplitted[0])+0) + "/" + (Number(MainObjectSplitted[1])+1) + "/" + (Number(MainObjectSplitted[2])+0)
------------------------------
Ctrl+F5
Posts: 7758
Threads: 42
Joined: Jun 2015
Reputation:
447
Changing assigned objects on the fly is not trivial and might lead to hard to find errors. I suggest duplicating widgets and assigning them to objects via a script. This is a more robust solution if done right.
Posts: 176
Threads: 42
Joined: Jul 2015
Reputation:
2
Ok. Can you make an example of this?
Posts: 4643
Threads: 24
Joined: Aug 2017
Reputation:
207
------------------------------
Ctrl+F5